home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1996 June / Software of the Month Club 1996 June.iso / mac / ISO9660 / DOS / DTP / AURORA / FUNCTION.DOX < prev    next >
Text File  |  1995-02-24  |  336KB  |  7,824 lines

  1.  
  2.  
  3.   The AML Function Reference
  4.   ──────────────────────────
  5.   This Function Reference documents all macro language Statements,
  6.   Builtin functions, and Library functions. Several editor Extension
  7.   functions are also documented. For a complete description of the
  8.   Aurora Macro Language (AML), see the Aurora Macro Language Reference.
  9.   For information on how to install, configure, and use Aurora, see the
  10.   Aurora Editor Users Guide.
  11.  
  12.   To use the Function Reference within a macro: move the cursor to a
  13.   function name or statement keyword and press <shift f2>. You can use
  14.   <shift f2> in any document, including the Language Reference
  15.   (LANGUAGE.DOX) and the Function Quick Reference (QUICKFUN.DOX). You
  16.   can also navigate through this document by moving the cursor to the
  17.   'see also' keywords and pressing <shift f2>.
  18.  
  19.   ──────────────────────────────────────────────────────────────────────
  20.   Copyright (C) 1995 by nuText Systems.  All rights reserved worldwide.
  21.   No parts of this document may be copied in part or in whole, except as
  22.   provided in the License in the accompanying documentation.
  23.   ──────────────────────────────────────────────────────────────────────
  24.  
  25.  
  26.   This document is divided into two sections:
  27.  
  28.     1. Language Statements
  29.     2. Functions (builtin functions and library functions)
  30.  
  31.   Statements and functions are sorted alphabetically in each section.
  32.  
  33.   Statements are indicated by the label [Statement], library functions
  34.   are indicates by [Lib], and extension functions are indicated by
  35.   [Ext]. Builtin functions are not labeled. Each library function also
  36.   displays the object where it is defined (i.e [Lib][edit]).
  37.  
  38.  
  39.  ┌─────────────────────────────────────────────────────────────────────┐
  40.  │ Language Statements                                                 │
  41.  └─────────────────────────────────────────────────────────────────────┘
  42.  
  43.   break                                                      [Statement]
  44.   ──────────────────────────────────────────────────────────────────────
  45.   remarks:     The 'break' statement will force an unconditional exit
  46.                from 'loop', 'repeat', and 'while' loops.
  47.  
  48.   returns:     nothing
  49.   see also:    loop, repeat, while
  50.  
  51.   example:     loop  
  52.                  keycode = getkey
  53.                  case keycode
  54.                    when <esc>           // <esc> exits the loop
  55.                      break 
  56.                    otherwise 
  57.                      say "you pressed " + (getkeyname keycode)
  58.                  end 
  59.                end 
  60.  
  61.  
  62.   case                                                       [Statement]
  63.   ──────────────────────────────────────────────────────────────────────
  64.   format:      case case_expr
  65.                  when when_expr
  66.                    expressions
  67.                  when when_expr, when_expr, when_expr
  68.                    expressions
  69.                   .
  70.                   .
  71.                  otherwise 
  72.                    expressions
  73.                end 
  74.  
  75.                The 'otherwise' clause is optional.
  76.  
  77.   remarks:     The 'case' statement evaluates 'case_expr', and then
  78.                evaluates each 'when' expression in order, until one is
  79.                found whose value is equal to the value of 'case_expr'.
  80.                If a matching 'when' expression is found, the expressions
  81.                associated with the 'when' statement are evaluated.
  82.  
  83.                Multiple 'when' expressions (separated by commas) may be
  84.                specified within a single 'when' clause.
  85.  
  86.                If no matching 'when' expressions are found, then the
  87.                'otherwise' clause (if present) is evaluated.
  88.  
  89.   returns:     The value of the last expression evaluated in the 'when'
  90.                or 'otherwise' clause.
  91.  
  92.   see also:    if, if?
  93.  
  94.   example:     case value
  95.                  when 1
  96.                    say "value is one"
  97.                  when 3, 7
  98.                    say "value is three or seven"
  99.                  when "abc" + "d"
  100.                    say "value is abcd"
  101.                  otherwise 
  102.                    say "value is " + value
  103.                end 
  104.  
  105.                value = case value
  106.                          when 1 "one"
  107.                          when 2 "two"
  108.                          otherwise "undefined"
  109.                        end 
  110.  
  111.  
  112.   databuf                                                    [Statement]
  113.   ──────────────────────────────────────────────────────────────────────
  114.   format:      databuf  buffer
  115.                 .
  116.                 .
  117.                end 
  118.  
  119.   remarks:     This statement creates a new buffer and initializes the
  120.                buffer with data, or adds data to the end of an existing
  121.                buffer. 'buffer' specifies the bufferid. Each expression
  122.                listed within the databuf-end group becomes a separate
  123.                line in the buffer. At least one line is required.
  124.  
  125.                This statement is generally used to define an 'inline'
  126.                data buffer in a macro, without requiring a separate file
  127.                to be loaded.
  128.  
  129.   returns:     nothing
  130.   see also:    createbbuf, createbuf, destroybuf
  131.  
  132.   example:     databuf "abc"              // bufferid 'abc'
  133.                  "first line"             // 1st line
  134.                  x + 5 - y                // 2rd line
  135.                  y                        // 3th line
  136.                  "a string"               // 4th line
  137.                end 
  138.  
  139.  
  140.   define                                                     [Statement]
  141.   ──────────────────────────────────────────────────────────────────────
  142.   format:      define 
  143.                 .
  144.                 .
  145.                end 
  146.  
  147.   remarks:     This statement defines a section of macro code which is
  148.                executed at compile-time. No object code is generated for
  149.                any expressions contained within the define-end group.
  150.  
  151.                Any functions defined within the define-end group are
  152.                evaluated at compile time when called. Similarly, object
  153.                variables which are assigned values within the define-end
  154.                group are treated as constants when referenced outside
  155.                the define-end group.
  156.  
  157.   returns:     nothing
  158.   see also:    forward, function, include, set, var
  159.  
  160.  
  161.   forward      identifier                                    [Statement]
  162.   ──────────────────────────────────────────────────────────────────────
  163.   remarks:     This keyword defines the specified identifier as a
  164.                function name. If a function is called before it is
  165.                defined with the 'function' statement, the 'forward'
  166.                keyword must be used to inform the compiler that the
  167.                identifier is a function name.
  168.  
  169.   returns:     nothing
  170.   see also:    function, key, var
  171.  
  172.  
  173.   function                                                   [Statement]
  174.   ──────────────────────────────────────────────────────────────────────
  175.   format:      function  functionname  (arg1 arg2 ...)
  176.                 .
  177.                 .
  178.                end 
  179.  
  180.   remarks:     This statement defines a function in the current object
  181.                with the name 'functionname'. Expressions contained
  182.                within the function definition will be evaluated when the
  183.                function is called.
  184.  
  185.                Function arguments can be referenced as variables within
  186.                the function by listing them within parentheses after the
  187.                function name. Note that arguments can also be referenced
  188.                with the 'arg' function (see the 'arg' function).
  189.  
  190.   returns:     nothing
  191.   see also:    arg, forward, key
  192.  
  193.   example:     function  hello (name)
  194.                  say "Hello " + name + '!'
  195.                end 
  196.  
  197.  
  198.   if                                                         [Statement]
  199.   ──────────────────────────────────────────────────────────────────────
  200.   format:      if if_expr then 
  201.                  expressions
  202.                elseif elseif_expr then 
  203.                  expressions
  204.                 .
  205.                 .
  206.                else 
  207.                  expressions
  208.                end 
  209.  
  210.                The 'elseif' and 'else' clauses are optional. The keyword
  211.                'then' is also optional, but may make the statement
  212.                easier to read.
  213.  
  214.   remarks:     The 'if' statement evaluates the expression 'if_expr'. If
  215.                the value is TRUE (not zero and not null), then the
  216.                expressions in the 'if' clause are evaluated. If the
  217.                value is not TRUE, then the expression 'elseif_expr' is
  218.                evaluated. If the value is TRUE, then the expressions in
  219.                the 'elseif' clause are evaluated, otherwise the
  220.                expressions in the 'else' clause (if present) are
  221.                evaluated. Multiple 'elseif' clauses may be specified.
  222.  
  223.   returns:     The value of the last expression evaluated in the 'if',
  224.                'elseif', or 'else' clauses.
  225.  
  226.   see also:    case, if?
  227.  
  228.  
  229.   if?          if_expr then_expr else_expr                   [Statement]
  230.   ──────────────────────────────────────────────────────────────────────
  231.   remarks:     The 'if?' statement is a shorter form of the 'if'
  232.                statement (see the 'if' statement'). The keywords 'then',
  233.                'elseif', and 'else' are not used. The expression
  234.                'else_expr' is optional.
  235.  
  236.                The 'if?' statement is primarily intended for use within
  237.                expressions, where it may be more convenient than the
  238.                'if' statement.
  239.  
  240.   returns:     The value of 'then_expr' or 'else_expr'.
  241.   see also:    case, if
  242.  
  243.   example:     string1 = if? a == 1  "a is one"  "a is not one"
  244.  
  245.  
  246.   key                                                        [Statement]
  247.   ──────────────────────────────────────────────────────────────────────
  248.   format:      key  <key or event>  (arg1 arg2 ...)
  249.                 .
  250.                 .
  251.                end 
  252.  
  253.                The 'end' keyword is not required if this statement is
  254.                followed by another 'key' or 'function' statement.
  255.  
  256.   remarks:     This statement defines an keyboard event handling
  257.                function in the current object with for the event name:
  258.                <key or event>. Expressions contained within the function
  259.                definition will be evaluated whenever the event is is
  260.                sent to the current object.
  261.  
  262.                Function arguments can be referenced as variables within
  263.                the function by listing them within parentheses after the
  264.                function name. Note that arguments can also be referenced
  265.                with the 'arg' function (see the 'arg' function).
  266.  
  267.                For all keyboard events generated by the editor except
  268.                <char>, a keycode is passed as the first argument. The
  269.                <char> event handling function is passed the ASCII
  270.                character entered as the first argument, and the keycode
  271.                as the second argument.
  272.  
  273.   returns:     nothing
  274.   see also:    arg, forward, function
  275.  
  276.   example:     key <ctrl c> (keycode)
  277.                  say "you pressed <ctrl c>, keycode=" + keycode
  278.                end 
  279.  
  280.  
  281.   keyword      keyword1, keyword2, ...                       [Statement]
  282.   ──────────────────────────────────────────────────────────────────────
  283.   remarks:     This statement inserts 'keyword1', 'keyword2', etc. as
  284.                syntax highlighting keywords in the current (executing)
  285.                object. The keywords must be separated by commas.
  286.  
  287.                Syntax highlighting keywords are stored as object
  288.                variables whose value is the keyword color. If the value
  289.                is null, then the keyword color defined in the 'syntax'
  290.                function is assumed. The 'keyword' statement always
  291.                assigns a value of null to the object variable.
  292.  
  293.   returns:     nothing
  294.   see also:    setsyntax, syntax
  295.   example:     see the configuration file SYNTAX.AML
  296.  
  297.  
  298.   include      expression                                    [Statement]
  299.   ──────────────────────────────────────────────────────────────────────
  300.   remarks:     This statement includes the macro language file defined
  301.                by 'expression' at the current source code location.
  302.  
  303.                The specified expression is always evaluated at compile
  304.                time. Any user-defined variables or functions referenced
  305.                within the expression must have been previously defined
  306.                within a 'define-end' group.
  307.  
  308.                This statement will include both macro source (.AML)
  309.                files and compiled macro (.X) files.
  310.  
  311.   returns:     nothing
  312.   see also:    define
  313.  
  314.   example:     include "d:\\macros.aml"
  315.                include  drive + path + filename
  316.  
  317.  
  318.   loop                                                       [Statement]
  319.   ──────────────────────────────────────────────────────────────────────
  320.   format:      loop 
  321.                  expressions
  322.                end 
  323.  
  324.   remarks:     The 'loop' statement evaluates 'expressions' repeatedly
  325.                until a 'break' or 'return' statement is encountered.
  326.  
  327.   returns:     nothing
  328.   see also:    break, repeat, return, while
  329.  
  330.  
  331.   menu                                                       [Statement]
  332.   ──────────────────────────────────────────────────────────────────────
  333.   format:      menu  menuname
  334.                  item  description1  expressions1
  335.                  item  description2  expressions2
  336.                   .
  337.                   .
  338.                end 
  339.  
  340.   remarks:     This statement creates a new menu buffer with the
  341.                bufferid 'menuname'.
  342.  
  343.                'description1', 'description2', etc. are the text strings
  344.                associated with each item on the menu. Each description
  345.                may contain one ampersand character (&) indicating that
  346.                the character following it is to be highlighted.
  347.  
  348.                'expressions1', 'expressions2', etc. are macro
  349.                expressions to be associated with the menu items. These
  350.                expressions can be retrieved and evaluated when a menu
  351.                item is selected (see the 'getmenu' function).
  352.  
  353.   returns:     The new menu bufferid if successful, otherwise null.
  354.   see also:    asciibuf, createbbuf, destroybuf, loadbuf, menubar, popup
  355.  
  356.   example:     menu "Colors"
  357.                  item  "&Red"        say "you selected red"
  358.                  item  "&Green"      say "you selected green"
  359.                  item  "&Blue"       say "you selected blue"
  360.                end 
  361.  
  362.  
  363.   menubar                                                    [Statement]
  364.   ──────────────────────────────────────────────────────────────────────
  365.   format:      menubar  window  bar[1-5]
  366.                  item  description1  expressions1
  367.                  item  description2  expressions2
  368.                   .
  369.                   .
  370.                end 
  371.  
  372.   remarks:     This statement creates or changes a menu bar for a
  373.                window. If 'window' is null, then the current window is
  374.                assumed.
  375.  
  376.                'description1', 'description2', etc. are the text strings
  377.                associated with each item on the menu bar. Each
  378.                description may contain one ampersand character (&)
  379.                indicating that the character following it is to be
  380.                highlighted. If a pair of ampersand characters (&&) is
  381.                specified, the character is highlighted with the window
  382.                title bar control color.
  383.  
  384.                'expressions1', 'expressions2', etc. are macro
  385.                expressions to be associated with the menu bar items.
  386.                These expressions can be retrieved and evaluated when a
  387.                menu bar item is selected (see the 'getmenubar'
  388.                function).
  389.  
  390.                Up to five menu bars can be defined for one window. 'bar'
  391.                specifies which of the five menu bars is being defined,
  392.                and can be one of the following values:
  393.  
  394.                1 - the primary menu bar at the top of the window, under
  395.                    the north title bar (if any)
  396.                2 - menu bar 2 directly underneath the primary menu bar
  397.                3 - menu bar 3 directly underneath menu bar 2
  398.                4 - menu bar 4 at the bottom of the window, above the
  399.                    south title bar (if any)
  400.                5 - vertical menu bar 5 at the left edge of the client
  401.                    area
  402.  
  403.                If 'bar' is null, then 1 is assumed.
  404.  
  405.   returns:     TRUE if successful, otherwise null.
  406.   see also:    getmenubar, menu
  407.  
  408.   example:     menubar '' 1                   // primary menu bar
  409.                  item  "&Red"                 say "you selected red"
  410.                  item  "&Green"               say "you selected green"
  411.                  item  "&Blue"                say "you selected blue"
  412.                end 
  413.  
  414.  
  415.   object                                                     [Statement]
  416.   ──────────────────────────────────────────────────────────────────────
  417.   format:      object  objectname ( parent1 parent2 ... )
  418.  
  419.                The inheritance list (parent1 parent2 ...) is optional.
  420.  
  421.   remarks:     This statement changes the current (executing) object to
  422.                'objectname'. If the object does not exist, then it is
  423.                created.
  424.  
  425.                If the inheritance path '(parent1 parent2 ...)' is
  426.                specified, then the object will inherit functions and
  427.                object variables from the objects 'parent1', 'parent2',
  428.                etc.
  429.  
  430.   returns:     nothing
  431.   see also:    destroyobject, getcurrobj, inheritkeys, object?
  432.  
  433.   example:     object abc
  434.                  // makes 'abc' the current object (and creates it
  435.                  //   if it doesn't exist)
  436.                object abc (def xyz)
  437.                  // makes 'abc' the current object (and creates it
  438.                  //   if it doesn't exist). 'abc' will inherit
  439.                  //   code and data from objects 'def' and 'xyz'
  440.  
  441.  
  442.   ref          variable                                      [Statement]
  443.   ──────────────────────────────────────────────────────────────────────
  444.   remarks:     The 'ref' keyword can be used to return more than one
  445.                value from a function.
  446.  
  447.                When 'ref' is specified immediately before a local or
  448.                global variable in a function call, it indicates that the
  449.                variable is to be passed 'by reference' to the function.
  450.                If the variable is modified in the called function, it is
  451.                also modified where it was called.
  452.  
  453.   returns:     nothing
  454.  
  455.   example:     function  modify (c d)
  456.                  c = 13
  457.                  d = 14
  458.                end 
  459.  
  460.                function  callmod
  461.                  a = 1
  462.                  b = 2
  463.                  modify  ref a  ref b
  464.                  return a + b                 // returns 27
  465.                end 
  466.  
  467.  
  468.   repeat                                                     [Statement]
  469.   ──────────────────────────────────────────────────────────────────────
  470.   format:      repeat 
  471.                  expressions
  472.                until until_expr
  473.  
  474.   remarks:     The 'repeat' statement evaluates 'expressions' repeatedly
  475.                until the value of the expression 'until_expr' is TRUE
  476.                (not zero and not null). 'until_expr' is tested after the
  477.                first iteration of the loop. The 'break' or 'return'
  478.                statements can be used to force an exit from the loop.
  479.  
  480.   returns:     null
  481.   see also:    break, loop, return, while
  482.  
  483.   example:     var i
  484.                repeat                         // counts from 0 to 9
  485.                  say "i is " + i
  486.                  delay 500
  487.                  i = i + 1
  488.                until i == 10
  489.  
  490.  
  491.   return       expression                                    [Statement]
  492.   ──────────────────────────────────────────────────────────────────────
  493.   remarks:     This statement returns the value of 'expression'
  494.                immediately and unconditionally to the calling function.
  495.  
  496.   returns:     the value of the specified expression.
  497.  
  498.   example:     return  "The value is: 13"    // returns a string
  499.                return  6 + 7                 // returns 13
  500.                return                        // returns the null string
  501.  
  502.  
  503.   set          variable expression                           [Statement]
  504.   ──────────────────────────────────────────────────────────────────────
  505.   remarks:     Assigns the value of 'expression' to an object variable
  506.                in the current (executing) object. Leading underscores
  507.                are ignored.
  508.  
  509.   returns:     nothing
  510.   see also:    function?, lookup, setobj, setx, setxfun, setxobj, unsetx
  511.  
  512.   example:     set Two 2
  513.                set _Two 2                     // underscore is ignored
  514.                set number  1 + 2 + x - 4
  515.                set abc_string 'a' + b + 'c'
  516.                set "A variable"  2
  517.  
  518.  
  519.   setobj       variable expression objexpression             [Statement]
  520.   ──────────────────────────────────────────────────────────────────────
  521.   remarks:     Assigns the value of 'expression' to an object variable
  522.                in the object defined by 'objexpression'. An object must
  523.                be specified
  524.  
  525.   returns:     nothing
  526.   see also:    function?, lookup, set, setx, setxfun, setxobj, unsetx
  527.  
  528.   example:     setobj Two 2 "edit"
  529.                setobj Two 2 "ed" + "it"
  530.  
  531.  
  532.   setx         varexpression expression                      [Statement]
  533.   ──────────────────────────────────────────────────────────────────────
  534.   remarks:     Assigns the value of 'expression' to an object variable
  535.                defined by 'varexpression' in the current object.
  536.  
  537.   returns:     nothing
  538.   see also:    function?, lookup, set, setobj, setxfun, setxobj, unsetx
  539.  
  540.   example:     setx "FourTeen"  14
  541.                setx "Four" + "Teen"  8 + 6   // assigns 14 to the object
  542.                                              //   variable "FourTeen"
  543.  
  544.                variable = "Fourteen"         // assigns 14 to the object
  545.                setx  variable  14            //   variable "FourTeen"
  546.  
  547.  
  548.   setxfun      funexpression expression objexpression        [Statement]
  549.   ──────────────────────────────────────────────────────────────────────
  550.   remarks:     Changes the function definition of the function
  551.                'funexpression' in the object 'objexpression' to the
  552.                macro source code in the string 'expression'. An object
  553.                must be specified.
  554.  
  555.                This statement can be used to change the definition of a
  556.                function to macro source code which is not known at
  557.                compile-time.
  558.  
  559.   returns:     nothing
  560.   see also:    function?, lookup, set, setobj, setx, setxobj, unsetx
  561.  
  562.   example:     setxfun "<ctrl d>"  "beep 400 400"  "edit"
  563.                  // assigns the macro code 'beep 400 400' to <ctrl d>
  564.                  //   in the object 'edit'
  565.  
  566.  
  567.   setxobj      varexpression expression objexpression        [Statement]
  568.   ──────────────────────────────────────────────────────────────────────
  569.   remarks:     Assigns the value of 'expression' to an object variable
  570.                defined by 'varexpression' in the object defined by
  571.                'objexpression'. An object must be specified.
  572.  
  573.   returns:     nothing
  574.   see also:    function?, lookup, set, setobj, setx, setxfun, unsetx
  575.  
  576.   example:     setxobj "Four" + "Teen"  8 + 6  "edit"
  577.                  // assigns 14 to the object variable 'Fourteen' in
  578.                  //   the object 'edit'
  579.  
  580.  
  581.   var          identifier                                    [Statement]
  582.   ──────────────────────────────────────────────────────────────────────
  583.   remarks:     This keyword defines the specified identifier as a
  584.                variable name, and initializes it to zero when entering a
  585.                macro or function.
  586.  
  587.                If a variable is referenced before it is assigned a value
  588.                (and not referenced in a function argument list), then
  589.                this keyword must be used to inform the compiler that the
  590.                specified identifier is a variable name.
  591.  
  592.   returns:     nothing
  593.   see also:    forward
  594.  
  595.   example:     function count (b)
  596.                  var a
  597.                  while a < b do 
  598.                    a = a + 1
  599.                  end 
  600.                end 
  601.  
  602.  
  603.   while                                                      [Statement]
  604.   ──────────────────────────────────────────────────────────────────────
  605.   format:      while while_expr do 
  606.                  expressions
  607.                end 
  608.  
  609.                The keyword 'do' is optional, but may make the statement
  610.                easier to read.
  611.  
  612.   remarks:     The 'while' statement evaluates 'expressions' repeatedly
  613.                while the expression 'while_expr' is TRUE (not zero and
  614.                not null). 'while_expr' is tested before the first
  615.                iteration of the loop. The 'break' or 'return' statements
  616.                can be used to force an exit from the loop.
  617.  
  618.   returns:     null
  619.   see also:    break, loop, repeat, return
  620.  
  621.  
  622.  
  623.  
  624.  ┌─────────────────────────────────────────────────────────────────────┐
  625.  │ Functions                                                           │
  626.  └─────────────────────────────────────────────────────────────────────┘
  627.  
  628.  
  629.   about                                                         [Lib][a]
  630.   ──────────────────────────────────────────────────────────────────────
  631.   remarks:     Displays an about box with the editor version, and the
  632.                date and time.
  633.   returns:     The button pressed (Ok), or null if nothing was pressed.
  634.   see also:    askprint, finddlg, repldlg, scandlg
  635.  
  636.  
  637.   addhistory   historybuffer string                             [Lib][a]
  638.   ──────────────────────────────────────────────────────────────────────
  639.   remarks:     Adds 'string' to the specified history buffer and makes
  640.                it the most recently used history string. The history
  641.                buffer is created if it does not exist.
  642.  
  643.   returns:     nothing
  644.   see also:    askhistory, gethiststr, pophistory
  645.  
  646.   example:     addhistory "_load" "C:\\FILE.TXT"
  647.                  // adds C:\FILE.TXT to the history buffer '_load'
  648.                addhistory "_find" "apples"
  649.                  // adds 'apples' to the history buffer '_find'
  650.  
  651.  
  652.   addline      string col row buffer
  653.   ──────────────────────────────────────────────────────────────────────
  654.   remarks:     Inserts a new line containing the specified string into a
  655.                buffer. This function is almost identical to the
  656.                'insline' function, except that new lines are added to
  657.                the end of the buffer if 'row' is not specified (see
  658.                'insline').
  659.  
  660.   returns:     TRUE if successful, otherwise null.
  661.   see also:    delline, insline, insabove, joinline, splitline
  662.  
  663.   example:     addline
  664.                  // adds a new blank line to the end of the
  665.                  //   current buffer
  666.                addline "Last line"
  667.                  // adds a new line with the text 'Last line'
  668.                  //   after the last line in the current buffer
  669.  
  670.  
  671.   adjustcol    col window
  672.   ──────────────────────────────────────────────────────────────────────
  673.   remarks:     Scrolls a window left or right relative to the position
  674.                of the cursor in the window. If 'window' is not
  675.                specified, the current window is assumed.
  676.  
  677.                This function does not move the cursor in the buffer. The
  678.                window is scrolled so that the cursor appears 'col' minus
  679.                1 columns from the left edge of the client area. If 'col'
  680.                is not specified, the window is scrolled to a position
  681.                that leaves the cursor in the vertical center of the
  682.                window.
  683.  
  684.   returns:     nothing
  685.   see also:    adjustrow
  686.  
  687.   example:     adjustcol
  688.                  // attempts to scroll the window so that the cursor
  689.                  //   is vertically centered in the window.
  690.                adjustcol 3
  691.                  // attempts to scroll the window so that the cursor
  692.                  //   is 3 columns from the left edge of the window
  693.  
  694.  
  695.   adjustrow    row window
  696.   ──────────────────────────────────────────────────────────────────────
  697.   remarks:     Scrolls a window up or down relative to the position of
  698.                the cursor in the window. If 'window' is not specified,
  699.                the current window is assumed.
  700.  
  701.                This function does not move the cursor in the buffer. The
  702.                window is scrolled so that the cursor appears 'row' minus
  703.                1 lines from the top edge of the client area. If 'row' is
  704.                not specified, the window is scrolled to a position that
  705.                leaves the cursor in the horizontal center of the window.
  706.  
  707.   returns:     nothing
  708.   see also:    adjustcol
  709.  
  710.   example:     adjustrow
  711.                  // attempts to scroll the window so that the cursor
  712.                  //   is horizontally centered in the window.
  713.                adjustrow 3
  714.                  // attempts to scroll the window so that the cursor
  715.                  //   is 3 rows from the top edge of the window
  716.  
  717.  
  718.   actualrow    (+/-)lines row buffer
  719.   ──────────────────────────────────────────────────────────────────────
  720.   remarks:     This function returns the actual line number which is the
  721.                apparent distance on the screen of 'lines' lines away
  722.                from the specified row. If 'buffer' is null or not
  723.                specified, then the current buffer is assumed. If 'row'
  724.                is not specified, then the line at the cursor is assumed.
  725.  
  726.   returns:     A line number if successful, otherwise null.
  727.   see also:    apparentrow, fold?, getfold
  728.  
  729.   example:     actualrow -5
  730.                  // returns the line number which appears to be 5
  731.                  //  lines above the current line on the screen
  732.  
  733.  
  734.   apparentrow  (+/-)lines row buffer
  735.   ──────────────────────────────────────────────────────────────────────
  736.   remarks:     This function returns the apparent line number on the
  737.                screen which is the actual distance of 'lines' lines away
  738.                from the specified row. If 'buffer' is null or not
  739.                specified, then the current buffer is assumed. If 'row'
  740.                is not specified, then the line at the cursor is assumed.
  741.  
  742.   returns:     A line number if successful, otherwise null.
  743.   see also:    actualrow, fold?, getfold
  744.  
  745.   example:     apparentrow 5
  746.                  // returns the apparent line number on the screen
  747.                  //   of the line 5 lines below the current line
  748.  
  749.  
  750.   arg          n
  751.   ──────────────────────────────────────────────────────────────────────
  752.   remarks:     Retrieves the 'nth' argument, or the number of arguments
  753.                passed to the currently executing function. If 'n' is
  754.                zero or not specified, then the number of arguments is
  755.                returned, otherwise the 'nth' argument is returned.
  756.  
  757.   returns:     A function argument or the number of function arguments.
  758.   see also:    function, key
  759.  
  760.   example:     function abc
  761.                  say (arg) + " args passed, first arg is: " + (arg 1)
  762.                end 
  763.  
  764.                abc 1 2 3     // displays: '3 args passed, first is: 1'
  765.  
  766.  
  767.   asciibuf     buffer
  768.   ──────────────────────────────────────────────────────────────────────
  769.  
  770.   remarks:     This function creates a new buffer containing an ASCII
  771.                chart with 256 lines - one for each ASCII character. The
  772.                new buffer will become the current buffer. If 'buffer' is
  773.                null or not specified, a unique bufferid will be
  774.                assigned.
  775.  
  776.                Note: this function will not display the new buffer in a
  777.                window. The 'popup' or 'openbuf' library functions should
  778.                be used to display the buffer.
  779.  
  780.   returns:     The new bufferid if successful, otherwise null.
  781.  
  782.   see also:    asciibuf, createbbuf, destroybuf, loadbuf, menu, openbuf,
  783.                popup
  784.  
  785.  
  786.   ask          prompt history init title opt=[c12d] width       [Lib][a]
  787.   ──────────────────────────────────────────────────────────────────────
  788.   remarks:     Prompts the user to enter a string. The following
  789.                parameters may be specified:
  790.  
  791.                prompt   - the prompt displayed to the user
  792.                history  - the history buffer to use in the prompt
  793.                init     - the initial value to place in the prompt
  794.                title    - the prompt title (dialog boxes only)
  795.                width    - the prompt width (dialog boxes only)
  796.  
  797.                The following 'prompt style' options may also be
  798.                specified:
  799.  
  800.                  c - command line prompt
  801.                  1 - one-line box prompt
  802.                  2 - two-line box prompt
  803.                  d - dialog box prompt
  804.  
  805.                If no options are specified, the value of 'PromptStyle'
  806.                in CONFIG.AML is used as the default prompt style.
  807.  
  808.                If a history bufferid is specified and does not already
  809.                exist, then it is created. Note that entered strings are
  810.                not automatically added to the history buffer (the
  811.                'addhistory' function must be used).
  812.  
  813.   returns:     This function returns the string entered. If nothing is
  814.                entered and the <enter> key is pressed, then one blank
  815.                (ASCII 32) is returned. If the prompt is cancelled, then
  816.                null is returned.
  817.  
  818.   see also:    addhistory, askfile, askprint, okbox, popup, repldlg,
  819.                scandlg, yncbox
  820.  
  821.   example:     ask "Enter a string"
  822.                  // prompts for a string
  823.                ask "Enter a file name" "_load" "C:\\FILE.TXT"
  824.                  // prompts for a string, initializing the prompt with
  825.                  //   C:\FILE.TXT. The "_load" history buffer is
  826.                  //   available within the prompt
  827.                ask "Enter a string" '' "initial string" "Enter" 'd' 20
  828.                  // prompts for a string using a dialog box prompt of
  829.                  //   width 20 with the title 'Enter". The prompt
  830.                  //   is initialized with "initial string".
  831.  
  832.  
  833.   askfile      filespec title sortoptions fmgroptions bufname   [Lib][a]
  834.   ──────────────────────────────────────────────────────────────────────
  835.   remarks:     Displays a file selection menu based on 'filespec'. The
  836.                following parameters can be specified:
  837.  
  838.                title       - the menu title
  839.  
  840.                sortoptions - One of the following sort options can be
  841.                              specified:
  842.  
  843.                                 d - file date/time (descending)
  844.                                 e - file extension
  845.                                 n - file name
  846.                                 o - DOS default order
  847.                                 s - file size (descending)
  848.  
  849.                              If no options are specified, the setting
  850.                              'FmgrSort' in CONFIG.AML is assumed.
  851.  
  852.                fmgroptions - One of the following options can be
  853.                              specified:
  854.  
  855.                                d - show subdirectories
  856.                                h - show hidden & system files
  857.                                k - show file sizes in 1k increments
  858.                                1 - show directories first when sorting
  859.                                    by name
  860.  
  861.                              If no options are specified, the setting
  862.                              'FmgrOpt' in CONFIG.AML is assumed.
  863.  
  864.                bufname     - A buffer name to be used for the menu. If a
  865.                              buffer name is specified, the menu will
  866.                              'remember' its window and cursor positions,
  867.                              and associate them with the buffer name.
  868.  
  869.   returns:     The selected file or directory, or null if nothing was
  870.                selected.
  871.  
  872.   see also:    popup
  873.  
  874.   example:     askfile "C:\\*.*" "Select a file"
  875.                  // displays a file selection menu for the C drive
  876.                askfile "C:\\*.*" "Select a file" 's' 'dk'
  877.                  // displays a file selection menu for the C drive,
  878.                  //   sorted by file size. The menu will show
  879.                  //   subdirectories, and file sizes in 1k increments
  880.  
  881.  
  882.   askhistory                                               [Lib][prompt]
  883.   ──────────────────────────────────────────────────────────────────────
  884.   remarks:     Displays a history popup menu for the current prompt. If
  885.                a string is selected, it is entered automatically into
  886.                the prompt. This function is only for use within prompts.
  887.   returns:     The string selected from the popup menu, or null if
  888.                nothing was selected or the history buffer does not
  889.                exist.
  890.   see also:    pophistory
  891.  
  892.  
  893.   askprint                                                      [Lib][a]
  894.   ──────────────────────────────────────────────────────────────────────
  895.   remarks:     Displays a print settings dialog box.
  896.   returns:     The button pressed (Ok), or null if nothing was pressed.
  897.   see also:    about, finddlg, repldlg, scandlg
  898.  
  899.  
  900.   assignkey                                                   [Lib][mon]
  901.   ──────────────────────────────────────────────────────────────────────
  902.   remarks:     Assigns the current scrap key macro to a key. The user is
  903.                prompted to enter the key. If the key macro is assigned,
  904.                the scrap macro is erased.
  905.  
  906.                Note: key macros cannot be assigned to multi-keys with
  907.                this function.
  908.  
  909.   returns:     nothing
  910.   see also:    assignkey, openkey, playing?, savekey, setting
  911.  
  912.  
  913.   base         number newbase
  914.   ──────────────────────────────────────────────────────────────────────
  915.   remarks:     Converts a decimal or hexadecimal number to a string
  916.                representing a number of any base from 2 to 36.
  917.  
  918.   returns:     a string representing the number in base 'newbase'.
  919.   see also:    bin2hex, hex2bin
  920.  
  921.   example:     base 45 16     // returns "2D"
  922.                base 45 8      // returns "55"
  923.                base 45 2      // returns "101101"
  924.  
  925.  
  926.   beep         frequency milliseconds
  927.   ──────────────────────────────────────────────────────────────────────
  928.   remarks:     Beeps the PC speaker at the specified frequency (in Hz)
  929.                for the specified number of milliseconds. If
  930.                'milliseconds' is omitted, the speaker will sound
  931.                indefinitely until the next call to this function. If no
  932.                arguments are passed to this function, then the speaker
  933.                is turned off.
  934.  
  935.   returns:     nothing
  936.   see also:    delay
  937.  
  938.   example:     beep 500 1000        // beeps at 500Hz for 1 second
  939.                beep 800             // beeps at 800Hz indefinitely
  940.                beep                 // turns sound off
  941.  
  942.  
  943.   begdesk                                                       [Lib][a]
  944.   ──────────────────────────────────────────────────────────────────────
  945.   remarks:     Clears the current desktop and marks the beginning of a
  946.                series of window 'close' calls which add each closed
  947.                window to the current desktop. This would typically be
  948.                used for exiting the editor and saving all open windows
  949.                as the current desktop.
  950.   returns:     nothing
  951.   see also:    close, enddesk
  952.  
  953.  
  954.   bin2hex      binarystring
  955.   ──────────────────────────────────────────────────────────────────────
  956.   remarks:     Converts a binary string into a string representing its
  957.                hexadecimal value
  958.  
  959.   returns:     a hexadecimal string.
  960.   see also:    hex2bin
  961.  
  962.   example:     bin2hex 'a'                    // returns "61"
  963.                bin2hex 'abc'                  // returns "616263"
  964.  
  965.  
  966.   bin2int      binarystring
  967.   ──────────────────────────────────────────────────────────────────────
  968.   remarks:     Converts 1, 2, or 4 byte binary strings into integers.
  969.  
  970.   returns:     an integer.
  971.   see also:    char, char2, char4
  972.  
  973.   example:     bin2int 'a'                    // returns 97
  974.                bin2int 'ab'                   // returns 25185
  975.                bin2int 'abcd'                 // returns 1684234849
  976.  
  977.  
  978.   blink        [0/1]
  979.   ──────────────────────────────────────────────────────────────────────
  980.   remarks:     Enables (1) or disables (0) the video blink mode.
  981.                Disabling the video blink mode allows the brighter
  982.                background colors (128-255) to be used.
  983.   returns:     nothing
  984.   see also:    display
  985.  
  986.  
  987.   bootpath     filename
  988.   ──────────────────────────────────────────────────────────────────────
  989.   remarks:     Converts an unqualified or partially qualified filename
  990.                into a fully-qualified filename based on the editor
  991.                'bootpath' (the location of the main editor .EXE file).
  992.  
  993.   returns:     a fully qualified filename or directory specification.
  994.   see also:    getbootpath, qualify
  995.  
  996.   example:     bootpath "KBD.AML"
  997.                  // returns C:\AURORA\KBD.AML if 'C:\AURORA' is the
  998.                  //   editor bootpath
  999.  
  1000.  
  1001.   bufchanged?  buffer
  1002.   ──────────────────────────────────────────────────────────────────────
  1003.   remarks:     Tests if a buffer is modified by checking the buffer
  1004.                'modified' flag. If 'buffer' is null or not specified,
  1005.                the current buffer is assumed.
  1006.   returns:     non-zero if the buffer is modified, otherwise null.
  1007.   see also:    bufchanged?, bufferflag
  1008.  
  1009.  
  1010.   buffer?      buffer
  1011.   ──────────────────────────────────────────────────────────────────────
  1012.   remarks:     Tests if a buffer exists. If 'buffer' is null or not
  1013.                specified, the current buffer is assumed.
  1014.   returns:     TRUE if the buffer exists, otherwise null.
  1015.   see also:    trunc?
  1016.  
  1017.  
  1018.   bufferflag   opt=[cdm-] buffer
  1019.   ──────────────────────────────────────────────────────────────────────
  1020.   remarks:     Turns buffer flags on or off. If 'buffer' is null or not
  1021.                specified, the current buffer is assumed. The following
  1022.                flags can be specified:
  1023.  
  1024.                  d - process 'dirty' or modified lines
  1025.                  m - buffer 'modified' flag
  1026.                  - - turns off flags
  1027.  
  1028.                If option '-' is specified, any other specified flags
  1029.                will be turned off, otherwise all specified flags will be
  1030.                turned on.
  1031.  
  1032.                The following option can also be specified:
  1033.  
  1034.                  c - clear all 'dirty' or modified lines
  1035.  
  1036.   returns:     nothing
  1037.   see also:    bufchanged?, bufferflag?, lineflag, lineflag?
  1038.  
  1039.   example:     bufferflag "-m"    // turn off the buffer-modified flag
  1040.                bufferflag "c"     // clear all modified lines
  1041.  
  1042.  
  1043.   bufferflag?  opt=[dm] buffer
  1044.   ──────────────────────────────────────────────────────────────────────
  1045.   remarks:     Tests if buffer flags are on. If 'buffer' is null or not
  1046.                specified, the current buffer is assumed. The following
  1047.                flags can be specified:
  1048.  
  1049.                  d - process 'dirty' or modified lines
  1050.                  m - buffer 'modified' flag
  1051.  
  1052.   returns:     non-zero if any of the specified buffer flags are ON,
  1053.                otherwise null.
  1054.   see also:    bufchanged?, bufferflag
  1055.  
  1056.   example:     bufferflag? "m"    // returns non-zero if the current
  1057.                                   //   buffer has been modified
  1058.  
  1059.  
  1060.   button?      buttonmask
  1061.   ──────────────────────────────────────────────────────────────────────
  1062.   remarks:     Tests if the specified mouse button(s) are currently
  1063.                pressed down. 'buttonmask' can be any combination of the
  1064.                following values OR'ed together (bitwise):
  1065.  
  1066.                01h - left button is down
  1067.                02h - right button is down
  1068.                04h - center button is down
  1069.  
  1070.                If 'buttonmask' is not specified, then 07h is assumed.
  1071.  
  1072.   returns:     Non-zero if the specified button keys are down, otherwise
  1073.                zero.
  1074.  
  1075.   example:     button?      // test if any mouse buttons are down
  1076.                button? 2    // test if the right mouse button is down
  1077.  
  1078.  
  1079.   call         funexpression arg1 arg2 ...
  1080.   ──────────────────────────────────────────────────────────────────────
  1081.   remarks:     Calls a function in the current object whose name is the
  1082.                value of 'funexpression', passing the arguments 'arg1',
  1083.                'arg2', etc.
  1084.  
  1085.   returns:     The return value of 'funexpression'.
  1086.   see also:    eval, pass, send, sendobject
  1087.  
  1088.   example:     call "beep" 400 400
  1089.                call "be" + "ep" 400 400
  1090.  
  1091.  
  1092.   cascade                                                     [Lib][win]
  1093.   ──────────────────────────────────────────────────────────────────────
  1094.   remarks:     Cascades all non-minimized windows on the screen.
  1095.   returns:     nothing
  1096.   see also:    splitwin, tile
  1097.  
  1098.  
  1099.   caseblock    opt=[lu] mark
  1100.   ──────────────────────────────────────────────────────────────────────
  1101.   remarks:     Changes the case of marked text. If 'mark' is not
  1102.                specified, then the default markid is assumed.
  1103.  
  1104.                Any combination of the following options may be specified:
  1105.  
  1106.                  l - change text to lower case
  1107.                  u - change text to upper case
  1108.  
  1109.                If options 'l' and 'u' are both specified, the case of
  1110.                each character in the mark is toggled. If no options are
  1111.                specified, then 'u' is assumed.
  1112.  
  1113.   returns:     TRUE if successful, otherwise null.
  1114.   see also:    flipcase, locase, upcase
  1115.  
  1116.  
  1117.   char         number1 number2 ...
  1118.   ──────────────────────────────────────────────────────────────────────
  1119.   remarks:     Converts its numeric arguments to 1 byte character
  1120.                strings whose ASCII value is the numeric argument.
  1121.  
  1122.   returns:     The concatenated string of all arguments converted to 1
  1123.                byte strings.
  1124.   see also:    bin2int, char2, char4
  1125.  
  1126.   example:     char 97                        // returns "a"
  1127.                char 65 66 67                  // returns "ABC"
  1128.  
  1129.  
  1130.   char2        number1 number2 ...
  1131.   ──────────────────────────────────────────────────────────────────────
  1132.   remarks:     Converts its numeric arguments to 2 byte binary character
  1133.                strings.
  1134.  
  1135.   returns:     The concatenated string of all arguments converted to 2
  1136.                byte strings.
  1137.   see also:    bin2int, char, char4
  1138.  
  1139.   example:     char2 6261h                    // returns "ab"
  1140.  
  1141.  
  1142.   char4        number1 number2 ...
  1143.   ──────────────────────────────────────────────────────────────────────
  1144.   remarks:     Converts its numeric arguments to 4 byte binary character
  1145.                strings.
  1146.  
  1147.   returns:     The concatenated string of all arguments converted to 4
  1148.                byte strings.
  1149.   see also:    bin2int, char, char2
  1150.  
  1151.   example:     char4 64636261h                // returns "abcd"
  1152.  
  1153.  
  1154.   chgfileattr  filename attributes=[ahrs]
  1155.   ──────────────────────────────────────────────────────────────────────
  1156.   remarks:     Changes the attributes of the file 'filename'. Any of the
  1157.                following attributes can be specified:
  1158.  
  1159.                  a - archive
  1160.                  h - hidden
  1161.                  r - read-only
  1162.                  s - system
  1163.                  null - no attributes
  1164.  
  1165.   returns:     Non-zero if successful, otherwise zero.
  1166.   see also:    fileattr?
  1167.  
  1168.   example:     chgfileattr "C:\\FILE.TXT" "r"
  1169.                  // makes C:\\FILE.TXT a read-only file
  1170.  
  1171.  
  1172.   clearwindow  color
  1173.   ──────────────────────────────────────────────────────────────────────
  1174.   remarks:     Clears the contents of the current video window and fills
  1175.                it with the color 'color'. This function is ignored for
  1176.                windows which display a buffer.
  1177.   returns:     nothing
  1178.   see also:    getx, gety, gotoxy, hilite, writeline, writestr
  1179.  
  1180.  
  1181.   close        opt=[s]           [Lib][win,edit_fmgr,prompt] [Ext][edit]
  1182.   ──────────────────────────────────────────────────────────────────────
  1183.   remarks:     Closes the current window. If the buffer in the window is
  1184.                not displayed in any other windows, the buffer is also
  1185.                destroyed. If option 's' is specified and the window is
  1186.                an edit window, the file is saved.
  1187.  
  1188.   returns:     nothing
  1189.   see also:    open, save, setname
  1190.  
  1191.   example:     close
  1192.                  // closes the current window
  1193.                close 's'
  1194.                  // saves the current buffer and closes the current
  1195.                  //   window
  1196.  
  1197.  
  1198.   closefile    handle
  1199.   ──────────────────────────────────────────────────────────────────────
  1200.   remarks:     Closes a file handle opened with 'openfile'.
  1201.   returns:     nothing
  1202.   see also:    filepos, openfile, readfile, writefile
  1203.  
  1204.  
  1205.   closefold    opt=[s] row buffer
  1206.   ──────────────────────────────────────────────────────────────────────
  1207.   remarks:     Closes the open fold spanning the specified row. If
  1208.                'buffer' is null or not specified, then the current
  1209.                buffer is assumed. If 'row' is not specified, then the
  1210.                line at the cursor is assumed. If option 's' is
  1211.                specified, all open subfolds within the fold are also
  1212.                closed.
  1213.  
  1214.   returns:     the number of folds closed
  1215.   see also:    createfold, destroyfold, foldblock, getfold, openfold
  1216.  
  1217.   example:     closefold
  1218.                  // closes the open fold spanning the current line in
  1219.                  //   the current buffer, leaving any subfolds open
  1220.  
  1221.  
  1222.   closemouse 
  1223.   ──────────────────────────────────────────────────────────────────────
  1224.   remarks:     Deactivates the mouse driver and removes the mouse
  1225.                pointer from the screen. When this function is called,
  1226.                mouse events will no longer be processed by the event
  1227.                queue.
  1228.   returns:     nothing
  1229.   see also:    openmouse
  1230.  
  1231.  
  1232.   col          col buffer
  1233.   ──────────────────────────────────────────────────────────────────────
  1234.   remarks:     Moves the cursor to the specified column, but does not
  1235.                change the row. If 'buffer' is null or not specified, the
  1236.                current buffer is assumed.
  1237.  
  1238.   returns:     TRUE if successful, otherwise null.
  1239.   see also:    gotopos, row
  1240.  
  1241.   example:     col 1
  1242.                  // moves the cursor to column 1 of the current line
  1243.                  //   in the current buffer
  1244.                col getlinelen + 1
  1245.                  // moves the cursor one column past the end of the
  1246.                  //   current line in the current buffer
  1247.  
  1248.  
  1249.   colorcursor  color cursor
  1250.   ──────────────────────────────────────────────────────────────────────
  1251.   remarks:     Changes the color of a cursor to the attribute 'color'.
  1252.                If 'cursor' is not specified, the current 'cursor' in the
  1253.                current buffer is assumed.
  1254.  
  1255.   returns:     TRUE if successful, otherwise null.
  1256.   see also:    getcolor, getcurrcurs, setcolor
  1257.  
  1258.   example:     colorcursor 95
  1259.                  // changes the color of the current cursor to
  1260.                  //   white on magenta
  1261.  
  1262.  
  1263.   colormark    color mark
  1264.   ──────────────────────────────────────────────────────────────────────
  1265.   remarks:     Changes the mark color to the attribute 'color'. If this
  1266.                function is not used, the window mark color is assumed.
  1267.                This function allows individual marks to have different
  1268.                colors. If 'mark' is not specified, the default markid is
  1269.                assumed.
  1270.  
  1271.   returns:     TRUE if successful, otherwise null.
  1272.   see also:    getcolor, setcolor
  1273.  
  1274.   example:     colormark 95
  1275.                  // changes the color of the current mark to
  1276.                  //   white on magenta
  1277.  
  1278.  
  1279.   compilemacro  sourcefile destfile
  1280.   ──────────────────────────────────────────────────────────────────────
  1281.   remarks:     Compiles the macro source file 'sourcefile' and places
  1282.                the compiled macro object code in the file 'destfile'.
  1283.                Compiler error information can be retrieved with the
  1284.                'geterror' function.
  1285.  
  1286.   returns:     Null if the compilation was successful, otherwise one of
  1287.                the following compiler error codes:
  1288.  
  1289.                  1001 - can't open file
  1290.                  1002, 1003 - read error
  1291.                  1004 - not an executable macro file
  1292.                  1031 - write error
  1293.                  1032 - can't open compiler output file
  1294.  
  1295.                  1101 - no closing quote
  1296.                  1102 - no closing bracket
  1297.                  1103 - invalid symbol
  1298.                  1104 - invalid key or event
  1299.  
  1300.                  1301 - no terminator
  1301.                  1302 - unexpected end of source
  1302.                  1303 - no closing parenthesis
  1303.                  1310 - unexpected argument
  1304.                  1311 - unexpected terminator
  1305.                  1312 - unexpected function
  1306.                  1313 - unexpected operator
  1307.                  1319 - identifier not defined (the identifier name
  1308.                           can be retrieved with the 'geterror' function,
  1309.                           using option 's')
  1310.                  1320 - bad assignment
  1311.                  1330 - bad when clause
  1312.                  1336 - improperly placed break
  1313.                  1337 - invalid reference
  1314.  
  1315.                  1501 - can't open include file (the include file name
  1316.                           can be retrieved with the 'geterror' function,
  1317.                           option 's')
  1318.                  1502 - include level exceeded
  1319.                  1503 - can't include compiled file in expression
  1320.                  1504 - include must be at top level
  1321.                  1505 - define can't be nested
  1322.                  1506 - function must be at top level
  1323.                  1507 - can't redefine builtin function
  1324.                  1508 - duplicated function argument
  1325.                  1509 - object statement not permitted
  1326.  
  1327.                  1701 - too many variables
  1328.                  1702 - too many function arguments
  1329.                  1703 - function or expression too large
  1330.                  1704, 1705 - internal stack overflow
  1331.                  1706 - out of symbol space
  1332.                  1707 - internal stack overflow
  1333.  
  1334.                  any other code -  fatal compilation error
  1335.  
  1336.   see also:    eval, geterror, includemacro, runmacro
  1337.  
  1338.   example:     compilemacro "c:\\aurora\\macro\\utility.aml"
  1339.                             "c:\\aurora\\macro\\utility.x"
  1340.  
  1341.  
  1342.   concat       string1 string2 ...
  1343.   ──────────────────────────────────────────────────────────────────────
  1344.   remarks:     Concatenates all of its arguments.
  1345.  
  1346.                Note: the concatenation operator (+) may also be used to
  1347.                concatenate strings.
  1348.  
  1349.   returns:     the concatenated string of all the arguments.
  1350.   see also:    copystr
  1351.  
  1352.   example:     concat "Red" "Green" "Blue"    // returns "RedGreenBlue"
  1353.  
  1354.  
  1355.   copyblock    mark buffer col row
  1356.   ──────────────────────────────────────────────────────────────────────
  1357.   remarks:     Copies marked text after the position 'col','row' in the
  1358.                specified buffer. The text is inserted at the new
  1359.                position and the mark is also moved to the new position.
  1360.  
  1361.                If 'mark' is not specified, the default markid is
  1362.                assumed. If 'buffer' is null or not specified, the
  1363.                current buffer is assumed. If 'col' and 'row' are not
  1364.                specified, the current cursor position is assumed.
  1365.  
  1366.   returns:     TRUE if successful, otherwise null.
  1367.   see also:    copyblockover, moveblock
  1368.  
  1369.  
  1370.   copyblockover  mark buffer col row
  1371.   ──────────────────────────────────────────────────────────────────────
  1372.   remarks:     Copies marked text to 'col','row' in the specified
  1373.                buffer. The text is overlaid at the new position (not
  1374.                inserted) and the mark is moved to the new location.
  1375.  
  1376.                If 'mark' is not specified, the default markid is
  1377.                assumed. If 'buffer' is null or not specified, the
  1378.                current buffer is assumed. If 'col' and 'row' are not
  1379.                specified, the current cursor position is assumed.
  1380.  
  1381.   returns:     TRUE if successful, otherwise null.
  1382.   see also:    copyblock, moveblock
  1383.  
  1384.  
  1385.   copyfile     sourcefile destfile opt=[au]
  1386.   ──────────────────────────────────────────────────────────────────────
  1387.   remarks:     Copies the file 'sourcefile' to 'destfile'. Any of the
  1388.                following options can be specified:
  1389.  
  1390.                  a - append the sourcefile to the destination file
  1391.                  u - update the destination file date/time
  1392.  
  1393.   returns:     Non-zero if successful, otherwise zero.
  1394.   see also:    deletefile, renamefile
  1395.  
  1396.  
  1397.   copymark     oldmark newmark
  1398.   ──────────────────────────────────────────────────────────────────────
  1399.   remarks:     Creates a new mark with the markid 'newmark' by making a
  1400.                copy of 'oldmark'. If 'newmark' is not specified, a
  1401.                unique markid will be assigned.
  1402.  
  1403.                The new mark will reside in the same buffer as 'oldmark'
  1404.                and have the same size and type. The new mark becomes the
  1405.                current mark for the buffer.
  1406.  
  1407.   returns:     TRUE if successful, otherwise null.
  1408.   see also:    markchar, markcolumn, markline, markstream
  1409.  
  1410.   example:     copymark '*' 'T'   // create a temporary copy of a mark
  1411.                  .
  1412.                  .
  1413.                destroymark 'T'    // destroy the temporary mark
  1414.  
  1415.  
  1416.   copystr      string count
  1417.   ──────────────────────────────────────────────────────────────────────
  1418.   remarks:     Concatenates a string with itself for 'count' number of
  1419.                times.
  1420.  
  1421.   returns:     the argument string copied 'count' times.
  1422.   see also:    concat, pad, sizeof
  1423.  
  1424.   example:     copystr "Red" 4    // returns "RedRedRedRed"
  1425.  
  1426.  
  1427.   copywin                                                    [Lib][edit]
  1428.   ──────────────────────────────────────────────────────────────────────
  1429.   remarks:     Copies the current edit window. The new edit window will
  1430.                display the same file in memory as the original window.
  1431.   returns:     TRUE if successful, otherwise null.
  1432.   see also:    splitwin
  1433.  
  1434.  
  1435.   createbuf    buffer line1 line2 ...
  1436.   ──────────────────────────────────────────────────────────────────────
  1437.   remarks:     This function creates a new buffer with the specified
  1438.                bufferid. If the bufferid is already in use, this
  1439.                function will fail. If 'buffer' is null or not specified,
  1440.                a unique bufferid will be assigned. The new buffer will
  1441.                become the current buffer.
  1442.  
  1443.                Initial lines can be placed in the buffer with the
  1444.                arguments 'line1', 'line2', etc. If no lines are
  1445.                specified, one blank line is assumed.
  1446.  
  1447.                Note: this function will not display the new buffer in a
  1448.                window. The 'openbuf' library function should be used to
  1449.                display the buffer.
  1450.  
  1451.   returns:     The new bufferid if successful, otherwise null.
  1452.  
  1453.   see also:    asciibuf, buffer?, createbbuf, destroybuf, loadbuf, menu,
  1454.                openbuf
  1455.  
  1456.   example:     createbuf        // creates a new buffer and returns a
  1457.                                 //   unique bufferid
  1458.                createbuf "abc"  // creates new buffer with the
  1459.                                 //   bufferid "abc"
  1460.                createbuf ''     // creates a new buffer with 2 lines
  1461.                  "First Line"   //   and returns a unique bufferid
  1462.                  "Second Line"
  1463.  
  1464.  
  1465.   createbbuf   buffer line1 line2 ...
  1466.   ──────────────────────────────────────────────────────────────────────
  1467.   remarks:     This function creates a new binary buffer with the
  1468.                bufferid 'buffer'. By default, when a binary buffer is
  1469.                saved, line delimiter characters are not appended to the
  1470.                end of each line.
  1471.  
  1472.                This function is almost identical to the 'createbuf'
  1473.                function, except that a binary buffer is created (see
  1474.                'createbuf').
  1475.  
  1476.   returns:     The new bufferid if successful, otherwise null.
  1477.   see also:    asciibuf, buffer?, createbuf, destroybuf, loadbuf, menu
  1478.  
  1479.  
  1480.   createdir    path
  1481.   ──────────────────────────────────────────────────────────────────────
  1482.   remarks:     Creates a new directory specified by 'path'. Only one
  1483.                directory in the path can be created at a time.
  1484.   returns:     Non-zero if successful, otherwise zero.
  1485.   see also:    locatefile
  1486.  
  1487.  
  1488.   createfold   opt=[c] row buffer
  1489.   ──────────────────────────────────────────────────────────────────────
  1490.   remarks:     Creates a one-line text fold. If 'buffer' is null or not
  1491.                specified, then the current buffer is assumed. If 'row'
  1492.                is not specified, then the line at the cursor is assumed.
  1493.                If option 'c' is specified, the fold is created 'closed',
  1494.                otherwise the fold is created 'open'.
  1495.  
  1496.   returns:     non-zero if successful, otherwise null.
  1497.  
  1498.   see also:    closefold, destroyfold, foldblock, foldline, getfold,
  1499.                openfold
  1500.  
  1501.   example:     createfold
  1502.                  // creates an open fold on the current line in
  1503.                  //   the current buffer
  1504.  
  1505.  
  1506.   createwindow  window
  1507.   ──────────────────────────────────────────────────────────────────────
  1508.   remarks:     Creates a new window.  If 'window' is null or not
  1509.                specified, a unique windowid will be assigned. The new
  1510.                window will become the current window.
  1511.  
  1512.                The new window will be sized to cover the entire physical
  1513.                screen and will not have any borders or frame controls.
  1514.                To add frame controls to the window, see the 'setframe'
  1515.                function. To change the border size and style, see the
  1516.                'setborder' function.
  1517.  
  1518.                The window event object will be set to the current
  1519.                (executing) object. To change the window event object,
  1520.                see the 'setwinobj' function.
  1521.  
  1522.                This function can be used to create simple video output
  1523.                windows, or windows that display buffers.
  1524.  
  1525.   returns:     The new windowid if successful, otherwise null.
  1526.   see also:    destroywindow, setwinobj, window?
  1527.  
  1528.   example:     createwindow                // create a new window
  1529.                setframe "b"                // add borders
  1530.                setborder "1i"              // set the border style
  1531.                setcolor  0  127            // set border color
  1532.                setcolor  5  112            // set text color
  1533.                settitle "Hello World!"     // set window title
  1534.                sizewindow 6 5 72 20 "ad"   // size the window
  1535.                setshadow 2 1               // add shadows to the window
  1536.  
  1537.  
  1538.   currbook     bookmark
  1539.   ──────────────────────────────────────────────────────────────────────
  1540.   remarks:     Makes the specified bookmark the current bookmark by
  1541.                moving it to the top of the bookmark list in the current
  1542.                buffer.
  1543.   returns:     TRUE if successful, otherwise null.
  1544.   see also:    getcurrbook
  1545.  
  1546.  
  1547.   currbuf      buffer
  1548.   ──────────────────────────────────────────────────────────────────────
  1549.   remarks:     Makes the specified buffer the current buffer by moving
  1550.                it to the top of the buffer list.
  1551.   returns:     nothing
  1552.   see also:    getcurrbuf, gotobuf
  1553.  
  1554.  
  1555.   currcursor   cursor
  1556.   ──────────────────────────────────────────────────────────────────────
  1557.   remarks:     Makes the specified cursor the current cursor by moving
  1558.                it to the top of the cursor list in the current buffer.
  1559.   returns:     TRUE if successful, otherwise null.
  1560.   see also:    getcurrcurs
  1561.  
  1562.  
  1563.   currdesk                                                      [Lib][a]
  1564.   ──────────────────────────────────────────────────────────────────────
  1565.   remarks:     Sets the 'current' desktop to the current window layout
  1566.                on the screen. The current desktop can be restored later
  1567.                with the 'restoredesk' function, or saved to a file with
  1568.                the 'savedesk' function.
  1569.   returns:     nothing
  1570.   see also:    begdesk, enddesk, opendesk, openhistory, restoredesk,
  1571.                savedesk
  1572.  
  1573.  
  1574.   currmark     mark
  1575.   ──────────────────────────────────────────────────────────────────────
  1576.   remarks:     Makes the specified mark the current mark by moving it to
  1577.                the top of the mark list in the current buffer. Marks at
  1578.                the top of the mark list have higher priority when
  1579.                displayed on the screen.
  1580.   returns:     TRUE if successful, otherwise null.
  1581.   see also:    getcurrmark
  1582.  
  1583.  
  1584.   currpath     path
  1585.   ──────────────────────────────────────────────────────────────────────
  1586.   remarks:     Changes the current DOS path to 'path' for the disk drive
  1587.                specified in 'path'.
  1588.   returns:     Non-zero if successful, otherwise zero.
  1589.   see also:    getcurrpath
  1590.  
  1591.   example:     currpath "d:\\abc"
  1592.                  // changes the current path for the D drive to 'abc'
  1593.  
  1594.  
  1595.   currwin      window                                           [Lib][a]
  1596.   ──────────────────────────────────────────────────────────────────────
  1597.   remarks:     Brings the specified window to the top of the screen and
  1598.                makes it the current window.
  1599.   returns:     nothing
  1600.   see also:    getcurrwin
  1601.  
  1602.  
  1603.   cursor?      cursor
  1604.   ──────────────────────────────────────────────────────────────────────
  1605.   remarks:     Tests if a cursor exists. If 'cursor' is null or not
  1606.                specified, then the current cursor for the current buffer
  1607.                is assumed.
  1608.   returns:     TRUE if the cursor exists, otherwise null.
  1609.   see also:    destroycursor, setcursor
  1610.  
  1611.  
  1612.   cursorsize   overtop overbot instop insbot
  1613.   ──────────────────────────────────────────────────────────────────────
  1614.   remarks:     Sets the physical cursor size for insert and overstrike
  1615.                modes in windows which display a buffer. 'overtop' and
  1616.                'overbot' specify the cursor top and bottom in overstrike
  1617.                mode. 'instop' and 'insbot' specify the cursor top and
  1618.                bottom in insert mode.
  1619.  
  1620.                The cursor top and bottom must be numbers from 0 to 99
  1621.                and indicate the distance of the top and bottom of the
  1622.                cursor from the top of the character cell, on a scale of
  1623.                0 to 99.
  1624.  
  1625.   returns:     nothing
  1626.   see also:    hidecursor, showcursor
  1627.  
  1628.  
  1629.   defext       filename extension                               [Ext][a]
  1630.   ──────────────────────────────────────────────────────────────────────
  1631.   remarks:     Appends the default extension 'extension' to the
  1632.                specified filename if the filename has no extension.
  1633.  
  1634.   returns:     a filename with the default extension.
  1635.   see also:    forceext
  1636.  
  1637.   example:     defext "file" "doc"          // returns 'file.doc'
  1638.                defext "file.txt" "doc"      // returns 'file.txt'
  1639.                defext "file." "doc"         // returns 'file.'
  1640.  
  1641.  
  1642.   delay        milliseconds
  1643.   ──────────────────────────────────────────────────────────────────────
  1644.   remarks:     Suspends execution of the editor for the specified number
  1645.                of milliseconds.
  1646.  
  1647.   returns:     nothing
  1648.   see also:    beep, exec, halt
  1649.  
  1650.   example:     delay 1000            // delay for 1 second
  1651.  
  1652.  
  1653.   delchar      count col row buffer
  1654.   ──────────────────────────────────────────────────────────────────────
  1655.   remarks:     Deletes text on a line in a buffer. If 'buffer' is null
  1656.                or not specified, then the current buffer is assumed.
  1657.  
  1658.                The text at the specified 'col' and 'row' are deleted. If
  1659.                'col' are 'row' are not specified, the text at the cursor
  1660.                is deleted. 'count' specifies the number of characters to
  1661.                delete. If 'count' is not specified, 1 is assumed.
  1662.  
  1663.   returns:     TRUE if successful, otherwise null.
  1664.   see also:    instext, ovltext, text
  1665.  
  1666.   example:     delchar
  1667.                  // deletes the character at the cursor in the
  1668.                  //   current buffer
  1669.                delchar 4
  1670.                  // deletes 4 characters at the cursor in the
  1671.                  //   current buffer
  1672.                delchar 1 5 20 "abc"
  1673.                  // deletes the character at column 5, line 20
  1674.                  //   in the buffer "abc"
  1675.  
  1676.  
  1677.   deleteblock  mark
  1678.   ──────────────────────────────────────────────────────────────────────
  1679.   remarks:     Deletes marked text and destroys the mark. If 'mark' is
  1680.                not specified, the default markid is assumed.
  1681.   returns:     TRUE if successful, otherwise null.
  1682.   see also:    copyblock
  1683.  
  1684.  
  1685.   deletefile   filename
  1686.   ──────────────────────────────────────────────────────────────────────
  1687.   remarks:     Deletes the specified filename. 'filename' may also
  1688.                specify an empty directory.
  1689.   returns:     TRUE if successful, otherwise null.
  1690.   see also:    copyfile, renamefile
  1691.  
  1692.  
  1693.   deletewin                                                     [Lib][a]
  1694.   ──────────────────────────────────────────────────────────────────────
  1695.   remarks:     Deletes the current window. For edit windows, the buffer
  1696.                in the window is not destroyed.
  1697.   returns:     nothing
  1698.   see also:    close
  1699.  
  1700.  
  1701.   delline      count row buffer
  1702.   ──────────────────────────────────────────────────────────────────────
  1703.   remarks:     Deletes a line or lines in a buffer. If 'buffer' is null
  1704.                or not specified, the current buffer is assumed.
  1705.  
  1706.                If 'row' is specified, lines are deleted starting with
  1707.                'row', otherwise lines are deleted at the cursor. 'count'
  1708.                specifies the number of lines to delete. If 'count' is
  1709.                not specified, 1 is assumed.
  1710.  
  1711.   returns:     the line number of the line deleted if successful,
  1712.                otherwise null.
  1713.  
  1714.   see also:    addline, insabove, insline, joinline, splitline
  1715.  
  1716.   example:     delline
  1717.                  // deletes the line at cursor in the current buffer
  1718.                delline 4
  1719.                  // deletes the line at cursor and 3 lines below
  1720.                  //   it in the current buffer
  1721.                delline 1 1 "abc"
  1722.                  // deletes the first line in the buffer "abc"
  1723.  
  1724.                if delline > getrow then 
  1725.                  // deletes the current line and tests if it was the
  1726.                  //   last line
  1727.                  .
  1728.                  .
  1729.                end 
  1730.  
  1731.  
  1732.   destroybook  bookmark
  1733.   ──────────────────────────────────────────────────────────────────────
  1734.   remarks:     Destroys a bookmark created with the 'setbook' function.
  1735.                If 'bookmark' is not specified, the current bookmark is
  1736.                assumed.
  1737.   returns:     TRUE if successful, otherwise null.
  1738.   see also:    setbook
  1739.  
  1740.  
  1741.   destroybuf   buffer
  1742.   ──────────────────────────────────────────────────────────────────────
  1743.   remarks:     Destroys a buffer, If 'buffer' is null or not specified,
  1744.                then the current buffer is destroyed. All windows,
  1745.                cursors, bookmarks, and marks associated with the buffer
  1746.                will also be destroyed. The previous buffer in the buffer
  1747.                list will become the current buffer.
  1748.  
  1749.   returns:     nothing
  1750.   see also:    createbbuf, createbuf, loadbuf
  1751.  
  1752.  
  1753.   destroycursor  cursor
  1754.   ──────────────────────────────────────────────────────────────────────
  1755.   remarks:     Destroys the specified cursor, and any window in which
  1756.                the cursor is displayed. If 'cursor' is not specified,
  1757.                then the current cursor in the current buffer is
  1758.                destroyed. If the buffer contains more than one cursor,
  1759.                the next cursor in the cursor list will become the
  1760.                current cursor.
  1761.   returns:     TRUE if successful, otherwise null.
  1762.   see also:    getcurswin, setcursor
  1763.  
  1764.  
  1765.   destroyfold  opt=[s] row buffer
  1766.   ──────────────────────────────────────────────────────────────────────
  1767.   remarks:     Destroys a closed fold. If 'buffer' is null or not
  1768.                specified, then the current buffer is assumed. If 'row'
  1769.                is not specified, then the line at the cursor is assumed.
  1770.                If option 's' is specified, all closed subfolds within
  1771.                the fold are also destroyed.
  1772.  
  1773.   returns:     the number of folds destroyed
  1774.  
  1775.   see also:    closefold, createfold, foldblock, foldline, getfold,
  1776.                openfold
  1777.  
  1778.   example:     destroyfold
  1779.                  // destroys the closed fold at the current line in the
  1780.                  //   current buffer, leaving subfolds intact
  1781.  
  1782.  
  1783.   destroymark  mark
  1784.   ──────────────────────────────────────────────────────────────────────
  1785.   remarks:     Destroys a mark created with the markline, markcolumn,
  1786.                markchar, markstream, or copymark functions. The text
  1787.                within the mark is not affected. If 'mark' is not
  1788.                specified, the default markid is assumed.
  1789.   returns:     TRUE if successful, otherwise null.
  1790.   see also:    copymark, markchar, markcolumn, markline, markstream
  1791.  
  1792.  
  1793.   destroyobject  object
  1794.   ──────────────────────────────────────────────────────────────────────
  1795.   remarks:     Flags the specified object to be destroyed. The object
  1796.                will actually be destroyed the next time the editor is
  1797.                idle. If 'object' is not specified, then the current
  1798.                object is assumed.
  1799.   returns:     nothing
  1800.   see also:    object, object?
  1801.  
  1802.  
  1803.   destroytimer  timerid
  1804.   ──────────────────────────────────────────────────────────────────────
  1805.   remarks:     Stops and destroys the timer identified by 'timerid'.
  1806.                This function will destroy both interval and alarm
  1807.                timers.
  1808.   returns:     nothing
  1809.   see also:    setalarm, settimer, timer?
  1810.  
  1811.  
  1812.   destroywindow  window
  1813.   ──────────────────────────────────────────────────────────────────────
  1814.   remarks:     Destroys a window and removes it from the screen. If
  1815.                'window' is null or not specified, then the current
  1816.                window is destroyed. Any child windows of 'window' are
  1817.                also destroyed. The previous window in the window list
  1818.                will become the current window.
  1819.   returns:     nothing
  1820.   see also:    createwindow, window?
  1821.  
  1822.  
  1823.   tabblock     (+/-)tabwidth[1-64] mark
  1824.   ──────────────────────────────────────────────────────────────────────
  1825.   remarks:     Entabs or detabs marked text. If 'mark' is not specified,
  1826.                the default markid is assumed.
  1827.  
  1828.                'tabwidth' specifies the tab width to use. If 'tabwidth'
  1829.                is not specified, then 8 is assumed.
  1830.  
  1831.                If 'tabwidth' is positive, then tab characters (ASCII 9)
  1832.                are converted into spaces (detab). Tab characters within
  1833.                single or double quotes are ignored.
  1834.  
  1835.                If 'tabwidth' is negative, then spaces are converted into
  1836.                tab characters (entab). Spaces occurring after a single
  1837.                or double quote on a line will not be entabbed.
  1838.  
  1839.   returns:     TRUE if successful, otherwise null.
  1840.  
  1841.  
  1842.   dir?         filespec                                         [Lib][a]
  1843.   ──────────────────────────────────────────────────────────────────────
  1844.   remarks:     Tests if 'filespec' specifies a directory.
  1845.  
  1846.   returns:     TRUE if filespec specifies a directory, otherwise null.
  1847.  
  1848.   example:     dir? "file.txt"      // returns null
  1849.                dir? "*.txt"         // returns true
  1850.                dir? "c:"            // returns true
  1851.  
  1852.  
  1853.   dispatch 
  1854.   ──────────────────────────────────────────────────────────────────────
  1855.   remarks:     This function reads the next event from the event queue
  1856.                and 'dispatches' it by calling a user-defined event
  1857.                handling function associated with the event. If no events
  1858.                are on the queue, this function waits for an event to
  1859.                appear on the queue.
  1860.   returns:     TRUE if the 'endprocess' function was not called in the
  1861.                user event-handling function, otherwise null.
  1862.   see also:    endprocess, process
  1863.  
  1864.  
  1865.   display      opt=[f]
  1866.   ──────────────────────────────────────────────────────────────────────
  1867.   remarks:     Updates the display. Any windows, buffers, and marks, and
  1868.                cursors which have been modified are redrawn.
  1869.  
  1870.                Specifying option 'f' forces the entire display to be
  1871.                redrawn (the background, all windows, etc.), even if
  1872.                nothing has been modified within the editor. This can be
  1873.                used to restore the display after another program,
  1874.                utility, or DOS command has overwritten it.
  1875.  
  1876.   returns:     TRUE if the display was updated, otherwise null.
  1877.   see also:    setdisplay
  1878.  
  1879.  
  1880.   down         rows buffer
  1881.   ──────────────────────────────────────────────────────────────────────
  1882.   remarks:     Moves the cursor downward. 'rows' specifies the number of
  1883.                lines to move. If 'rows' is not specified, 1 is assumed.
  1884.                If 'buffer' is null or not specified, the current buffer
  1885.                is assumed.
  1886.  
  1887.   returns:     TRUE if successful, otherwise null.
  1888.   see also:    left, right, up
  1889.  
  1890.   example:     down       // moves the cursor down 1 row
  1891.                down 5     // moves the cursor down 5 rows
  1892.  
  1893.  
  1894.   enddesk                                                       [Lib][a]
  1895.   ──────────────────────────────────────────────────────────────────────
  1896.   remarks:     Marks the end of a series of window 'close' calls which
  1897.                add the closed window to the current desktop.
  1898.   returns:     nothing
  1899.   see also:    begdesk
  1900.  
  1901.  
  1902.   endprocess 
  1903.   ──────────────────────────────────────────────────────────────────────
  1904.   remarks:     Posts a special internal 'quit' event to the event queue.
  1905.                When the editor processes this event, the current editor
  1906.                'process' is terminated, and the editor returns to the
  1907.                previous process (or to DOS if there is no previous
  1908.                process). The internal 'quit' event forces the 'dispatch'
  1909.                function to return null, and the 'process' function call
  1910.                to return.
  1911.  
  1912.   returns:     TRUE if successful, otherwise null.
  1913.   see also:    dispatch, process
  1914.  
  1915.  
  1916.   enhancedkbd  [0/1]
  1917.   ──────────────────────────────────────────────────────────────────────
  1918.   remarks:     Enables (1) or disables (0) the enhanced keyboard keys.
  1919.   returns:     nothing
  1920.  
  1921.  
  1922.   eotstring    titleid window
  1923.   ──────────────────────────────────────────────────────────────────────
  1924.   remarks:     Sets the end-of-text line for a window which displays a
  1925.                buffer to a window title previously set with the
  1926.                'settitle' function. If 'window' is not specified, the
  1927.                current window is assumed.
  1928.  
  1929.                'titleid' specifies which one of the 5 window titles
  1930.                should be used. The title should be hidden with settitle
  1931.                option 'z' (see 'settitle').
  1932.  
  1933.                If 'titleid' is not specified, then the 'end-of-text line
  1934.                is removed. If 'titleid' is -1, then the end-of-text line
  1935.                defaults to: "≡≡≡≡≡≡ End of Text ≡≡≡≡≡≡".
  1936.  
  1937.   returns:     nothing
  1938.   see also:    gettitle, settitle
  1939.  
  1940.   example:     eotstring
  1941.                  // removes the end-of-text line in the current window
  1942.                eotstring -1
  1943.                  // sets the end-of-text line to
  1944.                  //   '≡≡≡≡≡≡ End of Text ≡≡≡≡≡≡'
  1945.  
  1946.  
  1947.   erasekey     opt=[a]                                          [Lib][a]
  1948.   ──────────────────────────────────────────────────────────────────────
  1949.   remarks:     Erases the current scrap key macro. If option 'a' is
  1950.                specified, all current key macros are erased.
  1951.   returns:     TRUE if successful, otherwise null.
  1952.   see also:    openkey, playkey, savekey, setting
  1953.  
  1954.  
  1955.   eval         string object
  1956.   ──────────────────────────────────────────────────────────────────────
  1957.   remarks:     Compiles and evaluates a macro language source code
  1958.                string in the specified object. If 'object' is not
  1959.                specified, the current object is assumed. This function
  1960.                can also evaluate compiled expressions.
  1961.  
  1962.                Note that local and global variables defined outside of
  1963.                the scope of the eval string are not accessible from
  1964.                within the 'eval' function.
  1965.  
  1966.   returns:     The result of evaluating the macro source string. The
  1967.                'geterror' function can also be called to return an error
  1968.                code. The error code is zero if the string compiled
  1969.                successfully.
  1970.  
  1971.   see also:    compilemacro, geterror, includemacro, runmacro
  1972.  
  1973.   example:     eval "beep 700 300"            // beeps the speaker
  1974.                a = 40
  1975.                x = eval '3 + ' + a [1]        // x is '7'
  1976.  
  1977.  
  1978.   event? 
  1979.   ──────────────────────────────────────────────────────────────────────
  1980.   remarks:     Test if one or more events are currently in the event
  1981.                queue, including keyboard, mouse, and user-defined
  1982.                events.
  1983.   returns:     TRUE if an event is in the queue, otherwise null.
  1984.   see also:    keyhit?, shiftkey?
  1985.  
  1986.  
  1987.   eventobject  object
  1988.   ──────────────────────────────────────────────────────────────────────
  1989.   remarks:     Changes the current event object to the specified object.
  1990.                The current event object is where events are dispatched
  1991.                by the editor. If 'object' is not specified, the current
  1992.                (executing) object is assumed.
  1993.  
  1994.                Note: if a window has been associated with an event
  1995.                object via the 'setwinobj' function, the current event
  1996.                object is automatically changed to the window object when
  1997.                the window becomes the current window.
  1998.  
  1999.   returns:     TRUE if successful, otherwise null.
  2000.   see also:    geteventobj, setwinobj
  2001.  
  2002.  
  2003.   exec         program opt=[chk]
  2004.   ──────────────────────────────────────────────────────────────────────
  2005.   remarks:     Executes a DOS program. Any of the following options may
  2006.                be specified:
  2007.  
  2008.                  c - clears the screen before executing
  2009.                  h - displays the header "Type EXIT to return" after
  2010.                      executing the program
  2011.                  k - prompts the user with a keypress to return to the
  2012.                      editor
  2013.  
  2014.                Since DOS 'PATH' is not searched, 'program' should be
  2015.                fully qualified or reside in the current directory. If
  2016.                the path of the program is not known, the function
  2017.                'locatefile' can be used to search the DOS path.
  2018.  
  2019.   returns:     the DOS errorlevel
  2020.   see also:    delay, halt, locatefile
  2021.  
  2022.  
  2023.   extendmark   col row mark
  2024.   ──────────────────────────────────────────────────────────────────────
  2025.   remarks:     Extends a mark to the position defined by 'col','row'. If
  2026.                'col' and 'row' are not specified then the current cursor
  2027.                position is assumed. If 'mark' is not specified, the
  2028.                default markid is assumed.
  2029.   returns:     nothing
  2030.   see also:    markchar, markcolumn, markline, markstream, stopmark
  2031.  
  2032.  
  2033.   fdobrk                                                     [Lib][fmgr]
  2034.   ──────────────────────────────────────────────────────────────────────
  2035.   remarks:     Breaks out of the current 'fdomark' call.
  2036.   returns:     nothing
  2037.   see also:    fdomark
  2038.  
  2039.  
  2040.   fdomark      function arg1 arg2 ...
  2041.   ──────────────────────────────────────────────────────────────────────
  2042.   remarks:     Calls the specified function once for each marked file in
  2043.                the current file manager window. If no files are marked,
  2044.                the function is called only once for the file or
  2045.                directory at the current line in the file manager. The
  2046.                function is called in the current event object.
  2047.  
  2048.                The fully qualified file name and the arguments 'arg1',
  2049.                'arg2', etc. are passed to the function in following
  2050.                order:
  2051.  
  2052.                  filename arg1 arg2 ...
  2053.  
  2054.   returns:     nothing
  2055.   see also:    fdobrk, fmark, fmark?
  2056.  
  2057.   example:     fdomark "chgfileattr" attribute
  2058.                  // calls the function 'chgfileattr' (passing the value
  2059.                  //   of the variable 'attribute') in the current event
  2060.                  //   object for all marked files in the current
  2061.                  //   file manager window
  2062.  
  2063.  
  2064.   fileattr?    filename attributes=[adhrsv]
  2065.   ──────────────────────────────────────────────────────────────────────
  2066.   remarks:     Tests if 'filename' has the specified file attributes.
  2067.                Any combination of the following attributes can be
  2068.                specified:
  2069.  
  2070.                  a - archive
  2071.                  d - directory
  2072.                  h - hidden
  2073.                  r - read only
  2074.                  s - system
  2075.                  v - volume
  2076.  
  2077.   returns:     Non-zero if any of the specified attributes are present,
  2078.                otherwise null.
  2079.   see also:    chgfileattr
  2080.  
  2081.   example:     if fileattr? "C:\\FILE.TXT" 'r' then   // test for
  2082.                  say "Read Only!"                     // read-only file
  2083.                else                                   // before saving
  2084.                  savebuf "C:\\FILE.TXT"
  2085.                end 
  2086.  
  2087.  
  2088.   filelist                                                      [Lib][a]
  2089.   ──────────────────────────────────────────────────────────────────────
  2090.   remarks:     Displays a popup menu of buffers which have not been
  2091.                'hidden'. Selecting a buffer will make it the current
  2092.                buffer and display it in the current edit window. The
  2093.                buffer previously displayed in the edit window will not
  2094.                be destroyed.
  2095.   returns:     the bufferid selected, or null if nothing was selected.
  2096.   see also:    hidebuf, nextfile, prevfile
  2097.  
  2098.  
  2099.   filepos      handle position opt=[ace]
  2100.   ──────────────────────────────────────────────────────────────────────
  2101.   remarks:     Changes the current position in the open file specified
  2102.                by 'handle'. The new position depends on the value of
  2103.                'position', the current position, and the options
  2104.                specified. One of the following options may be specified:
  2105.  
  2106.                  a - 'position' is an absolute position in the file (1
  2107.                      is the first position)
  2108.                  c - 'position' is an offset from the current position
  2109.                  e - 'position' is an offset from the end of the file.
  2110.  
  2111.                If no options are specified, then 'a' is assumed.
  2112.  
  2113.   returns:     The new absolute position in the file (1 is the first
  2114.                position) if successful, otherwise null.
  2115.   see also:    closefile, openfile, readfile, writefile
  2116.  
  2117.  
  2118.   fillblock    string mark
  2119.   ──────────────────────────────────────────────────────────────────────
  2120.   remarks:     Fills a mark with the specified string. If 'mark' is not
  2121.                specified, the default markid is assumed.
  2122.   returns:     TRUE if successful, otherwise null.
  2123.   see also:    copystr
  2124.  
  2125.  
  2126.   find         searchstring opt=[abfgilnorswx*[~] mark buffer
  2127.   ──────────────────────────────────────────────────────────────────────
  2128.   remarks:     Searches for the specified search string in a buffer,
  2129.                mark, or line. If 'buffer' is not specified, the current
  2130.                buffer is assumed.
  2131.  
  2132.                Various combinations of the following search options may
  2133.                be specified:
  2134.  
  2135.                  a - find all occurrences
  2136.                  b - limit the search to the specified mark
  2137.                  f - search for closed text folds
  2138.                  g - start the search from the beginning or end of the
  2139.                      buffer, mark, or line
  2140.                  i - ignore case during the search
  2141.                  l - limit the search to the current line
  2142.                  n - prevent the cursor position from being updated
  2143.                  o - search for open text folds
  2144.                  r - search in reverse towards the beginning of the
  2145.                      buffer, rather than towards the end of the buffer
  2146.                  s - skip closed text folds
  2147.                  w - search for 'whole words' only
  2148.                  x - check for regular expression characters in the
  2149.                      search string (see 'Regular Expression Searching').
  2150.                  * - force the search to begin at the current cursor
  2151.                      position instead of the next character position
  2152.                  [ - search for the first character also found in the
  2153.                      search string. Character ranges can be specified
  2154.                      (a-zA-Z, etc.)
  2155.                  ~ - search for the first character not found in the
  2156.                      search string. Character ranges can be specified
  2157.                      (a-zA-Z, etc.)
  2158.  
  2159.                If the string is found, and options 'a' and 'n' are not
  2160.                specified, then the cursor is moved to the beginning of
  2161.                the matched string, otherwise the cursor does not move.
  2162.  
  2163.   returns:     If option 'a' is specified, the number of occurrences
  2164.                found is returned, otherwise the length of the matched
  2165.                string is returned. If nothing is found, then null is
  2166.                returned.
  2167.  
  2168.   see also:    replace, search
  2169.  
  2170.   example:     find "apples"
  2171.                  // searches for the string 'apples' (case sensitive)
  2172.                  //   starting at one char to the right of the cursor
  2173.                  //   and searching toward the end of the buffer
  2174.                find "apples" "*ir"
  2175.                  // searches for 'apples' (case insensitive) starting at
  2176.                  //   the cursor position and searching toward the
  2177.                  //   beginning of the buffer
  2178.                find "apples" "bgw"
  2179.                  // searches for 'apples' (whole words only), limiting
  2180.                  //   the search to the current mark and starting from
  2181.                  //   the beginning of the mark
  2182.                find "{apples}|{oranges}" "agx"
  2183.                  // returns the total number of occurrences of the
  2184.                  //   strings 'apples' and 'oranges' (using regular
  2185.                  //   expressions) in the current buffer. The cursor is
  2186.                  //   not moved.
  2187.                find "a-zA-Z" "[gl"
  2188.                  // Moves the cursor to the first alphabetic character
  2189.                  //   in the current line
  2190.                find "^ *$" "agx"
  2191.                  // Counts the number of blank lines in the current
  2192.                  //   buffer using regular expressions
  2193.  
  2194.  
  2195.   findbuf      buffername
  2196.   ──────────────────────────────────────────────────────────────────────
  2197.   remarks:     Finds the first buffer in the buffer list with the
  2198.                specified buffer name. A buffer name can be associated
  2199.                with a buffer by using the 'setbufname' function. For
  2200.                most ordinary editing buffers, the buffer name is usually
  2201.                a fully qualified file name.
  2202.  
  2203.   returns:     The first bufferid with specified name if successful,
  2204.                otherwise null.
  2205.   see also:    getcurrbuf, getprevbuf, setbufname
  2206.  
  2207.   example:     findbuf "C:\\FILE.TXT"
  2208.                  // returns the bufferid of the buffer with the
  2209.                  //   name C:\FILE.TXT
  2210.  
  2211.  
  2212.   finddlg                                                    [Lib][edit]
  2213.   ──────────────────────────────────────────────────────────────────────
  2214.   remarks:     Displays a find dialog box.
  2215.   returns:     the search multi-string (searchstring/options) to be used
  2216.                when searching, or null if nothing is specified.
  2217.   see also:    about, askprint, repldlg, scandlg
  2218.  
  2219.  
  2220.   flipcase     string
  2221.   ──────────────────────────────────────────────────────────────────────
  2222.   remarks:     Toggles the case of each character in the string.
  2223.   returns:     the 'flipcased' string.
  2224.   see also:    locase, upcase
  2225.   example:     flipcase "Oranges"             // returns "oRANGES"
  2226.  
  2227.  
  2228.   fmark        opt=[amu]                                     [Lib][fmgr]
  2229.   ──────────────────────────────────────────────────────────────────────
  2230.   remarks:     Marks or unmarks files in the current file manager
  2231.                window. The following options can be specified:
  2232.  
  2233.                  a - unmarks all files when specified with option 'u',
  2234.                      otherwise all files are marked.
  2235.                  m - marks the file or directory at the cursor. If
  2236.                      option 'a' is specified, all files are marked.
  2237.                  u - unmarks the file or directory at the cursor. If
  2238.                      option 'a' is specified, all files and directories
  2239.                      are unmarked.
  2240.  
  2241.                If no options are specified, 'm' is assumed.
  2242.  
  2243.   returns:     nothing
  2244.   see also:    fdobrk, fdomark, fmark?
  2245.  
  2246.   example:     fmark
  2247.                  // mark the file or directory at the cursor
  2248.                fmark "ma"
  2249.                  // mark all files
  2250.                fmark "ua"
  2251.                  // unmark all files and directories
  2252.  
  2253.  
  2254.   fmark?                                                     [Lib][fmgr]
  2255.   ──────────────────────────────────────────────────────────────────────
  2256.   remarks:     Tests if any files or directories are marked in the
  2257.                current file manager window.
  2258.   returns:     Non-zero if a file or directory is marked, otherwise
  2259.                null.
  2260.   see also:    fdobrk, fdomark, fmark?
  2261.  
  2262.  
  2263.   fold?        opt=[contbsl] row buffer
  2264.   ──────────────────────────────────────────────────────────────────────
  2265.   remarks:     This function is a synonym for the 'getfold' function.
  2266.                Calling this function with no arguments is useful for
  2267.                testing whether or not a closed fold exists on the
  2268.                current line in the current buffer.
  2269.   returns:     see the 'getfold' function.
  2270.   see also:    getfold
  2271.  
  2272.  
  2273.   foldblock    opt=[cdkos] mark
  2274.   ──────────────────────────────────────────────────────────────────────
  2275.   remarks:     Manipulates folds within a mark. If 'mark' is not
  2276.                specified, the default markid is assumed. The following
  2277.                options may be specified:
  2278.  
  2279.                  c - Closes open folds in the mark. If option 's' is
  2280.                      also specified, all subfolds are also closed.
  2281.  
  2282.                  d - Destroys folds in the mark. The following options
  2283.                      may also be specified:
  2284.  
  2285.                        s - destroys subfolds
  2286.                        c - destroys closed folds
  2287.                        o - destroys open folds
  2288.  
  2289.                      If option 'd' is specified and options 'o' or 'c'
  2290.                      are not specified, then 'dco' is assumed.
  2291.  
  2292.                  k - Creates a fold spanning the mark. If option 'o' is
  2293.                      also specified, then the fold is created 'open',
  2294.                      otherwise the fold is created 'closed'.
  2295.  
  2296.                  o - Opens closed folds in the mark. If option 's' is
  2297.                      also specified, all subfolds are also opened.
  2298.  
  2299.                If no options are specified, then 'k' is assumed.
  2300.  
  2301.   returns:     the number of folds opened, closed, or destroyed.
  2302.  
  2303.   see also:    actualrow, apparentrow, closefold, createfold,
  2304.                destroyfold, fold?, getfold, openfold
  2305.  
  2306.   example:     foldblock
  2307.                  // creates a new closed fold spanning the default mark
  2308.                foldblock 'ds'
  2309.                  // destroys all open and closed folds and subfolds
  2310.                  //   in the default mark
  2311.                foldblock 'o'
  2312.                  // opens all top level closed folds in the default mark
  2313.                foldblock 'cs'
  2314.                  // closes all open folds and subfolds in the default
  2315.                  //   mark
  2316.  
  2317.  
  2318.   foldline     opt=[u]                                       [Ext][edit]
  2319.   ──────────────────────────────────────────────────────────────────────
  2320.   remarks:     Folds or unfolds the current line in the current buffer.
  2321.                If option 'u' is specified, the line is unfolded,
  2322.                otherwise the line is folded.
  2323.   returns:     nothing
  2324.  
  2325.   see also:    actualrow, apparentrow, closefold, createfold,
  2326.                destroyfold, fold?, foldblock, getfold, openfold
  2327.  
  2328.  
  2329.   forceext     filename extension                               [Ext][a]
  2330.   ──────────────────────────────────────────────────────────────────────
  2331.   remarks:     Forces a filename to have the specified extension.
  2332.  
  2333.   returns:     a filename with the specified extension.
  2334.   see also:    defext
  2335.  
  2336.   example:     forceext "file" "doc"        // returns 'file.doc'
  2337.                forceext "file.txt" "doc"    // returns 'file.doc'
  2338.  
  2339.  
  2340.   formatblock  leftmarg rightmarg opt=[kjr] mark
  2341.   ──────────────────────────────────────────────────────────────────────
  2342.   remarks:     Reformats marked text. If 'mark' is not specified, the
  2343.                default markid is assumed.
  2344.  
  2345.                For column marks, the text is reformatted to fit between
  2346.                the left and right edges of the mark. For all other
  2347.                marks, the text is reformatted to fit between 'leftmarg'
  2348.                and 'rightmarg'.
  2349.  
  2350.                Any combination of the following options may be
  2351.                specified:
  2352.  
  2353.                  j - the text is both left and right justified (blanks
  2354.                      are inserted to pad text to the right margin)
  2355.                  k - attempts to preserve spaces during the reformat
  2356.                  r - maintains the indenting relationship between the
  2357.                      first and second line of the text
  2358.  
  2359.   returns:     TRUE if successful, otherwise null.
  2360.   see also:    justblock
  2361.  
  2362.   example:     formatblock 5 50 "kr"
  2363.                  // reformats the text within a line mark to fit between
  2364.                  //   columns 5 and 50, preserving spaces and
  2365.                  //   maintaining the relationship between the first
  2366.                  //   and second lines in the mark.
  2367.  
  2368.  
  2369.   frame?       components window
  2370.   ──────────────────────────────────────────────────────────────────────
  2371.   remarks:     Tests if the specified window frame components are
  2372.                present. If 'window' is not specified, the current window
  2373.                is assumed. See the 'setframe' function for a list of
  2374.                window component options.
  2375.  
  2376.   returns:     Non-zero if any of the specified components are present.
  2377.   see also:    setframe
  2378.  
  2379.   example:     frame? "bn"
  2380.                  // returns non-zero if the current window has a
  2381.                  //   border or a north title bar
  2382.  
  2383.  
  2384.   fscanstr                                                   [Lib][fmgr]
  2385.   ──────────────────────────────────────────────────────────────────────
  2386.   remarks:     Returns the scan string (if any) used to generate the
  2387.                current file manager window.
  2388.   returns:     a scan search string in multi-string format
  2389.   see also:    ftype?
  2390.  
  2391.  
  2392.   fsort        opt=[ednos]                                      [Lib][a]
  2393.   ──────────────────────────────────────────────────────────────────────
  2394.   remarks:     Sorts files and directories in the current file manager
  2395.                window. One of the following options can be specified:
  2396.  
  2397.                  d - sorts by date and time (descending order)
  2398.                  e - sorts by file extension
  2399.                  n - sorts by file name
  2400.                  o - arrange in the DOS default order
  2401.                  s - sorts by file size (descending order)
  2402.  
  2403.                If no options are specified, 'o' is assumed.
  2404.  
  2405.   returns:     nothing
  2406.   see also:    askfile
  2407.  
  2408.   example:     fsort 'n'            // sort by file name
  2409.                fsort 's'            // sort by size (descending)
  2410.  
  2411.  
  2412.   ftype?       opt=[is]                                      [Lib][fmgr]
  2413.   ──────────────────────────────────────────────────────────────────────
  2414.   remarks:     Tests the current file manager window 'type'. One of the
  2415.                following options can be specified:
  2416.  
  2417.                  i - an 'include file' picklist
  2418.                  s - generated by the 'file scanning' process
  2419.  
  2420.   returns:     TRUE if successful, otherwise null.
  2421.   see also     fscanstr
  2422.  
  2423.   example:     if ftype 's' then    // is this a scan window?
  2424.                  .
  2425.                  .
  2426.                end 
  2427.  
  2428.  
  2429.   function?    funexpression objexpression
  2430.   ──────────────────────────────────────────────────────────────────────
  2431.   remarks:     Tests for the existence of a function defined by
  2432.                'funexpression' in the object defined by 'objexpression'.
  2433.                If 'objexpression' is not specified, then the current
  2434.                object is assumed. The inheritance hierarchy of the
  2435.                specified object may also be searched for the function.
  2436.  
  2437.   returns:     Non-zero if the function exists, otherwise null.
  2438.   see also:    lookup, set, setobj, setx, setxfun, setxobj, unsetx
  2439.  
  2440.   example:     function? "function?"
  2441.                  // returns non-zero
  2442.                function? "markword" "edit"
  2443.                  // tests if the 'markword' function is accessible
  2444.                  //   from within the object 'edit'
  2445.  
  2446.  
  2447.   fup                                                        [Lib][fmgr]
  2448.   ──────────────────────────────────────────────────────────────────────
  2449.   remarks:     Reloads the current file manager window with the parent
  2450.                directory of the currently displayed directory.
  2451.   returns:     TRUE if successful, otherwise null.
  2452.   see also:    open, reopen
  2453.  
  2454.  
  2455.   getbinarylen  buffer
  2456.   ──────────────────────────────────────────────────────────────────────
  2457.   remarks:     Gets the binary line length that was used to load a
  2458.                binary buffer. If 'buffer' is null or not specified, then
  2459.                the current buffer is assumed. This function can also be
  2460.                used to test if a buffer is a binary buffer.
  2461.   returns:     The binary line length associated with a buffer.
  2462.   see also:    createbbuf, insertbuf, loadbuf
  2463.  
  2464.  
  2465.   getbookbuf   bookmark
  2466.   ──────────────────────────────────────────────────────────────────────
  2467.   remarks:     Retrieves the buffer associated with a bookmark. If
  2468.                'bookmark' is not specified, the current 'bookmark' in
  2469.                the current buffer is assumed.
  2470.   returns:     The bufferid associated with the bookmark if successful,
  2471.                otherwise null.
  2472.   see also:    getcurrbook
  2473.  
  2474.  
  2475.   getbootpath 
  2476.   ──────────────────────────────────────────────────────────────────────
  2477.   remarks:     Retrieves the editor 'boot' path. The boot path is the
  2478.                location of the editor .EXE file currently executing.
  2479.   returns:     The boot path.
  2480.   see also:    bootpath, setbootpath
  2481.  
  2482.  
  2483.   getborder    opt=[xyt] window
  2484.   ──────────────────────────────────────────────────────────────────────
  2485.   remarks:     Retrieves information about a window border. If 'window'
  2486.                is not specified, the current window is assumed. One of
  2487.                the following options can be specified:
  2488.  
  2489.                  x - returns the width of the left and right borders
  2490.                  y - returns the width of the top and bottom borders
  2491.                  t - returns the border type, See the 'setborder'
  2492.                      function for a description of border types.
  2493.  
  2494.   returns:     Information based on the options specified.
  2495.   see also:    setborder
  2496.  
  2497.  
  2498.   getbotwin 
  2499.   ──────────────────────────────────────────────────────────────────────
  2500.   remarks:     Gets the bottommost window on the screen.
  2501.   returns:     the windowid of the bottommost window on the screen
  2502.   see also:    getcurrwin
  2503.  
  2504.  
  2505.   getbufname   buffer
  2506.   ──────────────────────────────────────────────────────────────────────
  2507.   remarks:     Retrieves the descriptive name associated with a buffer.
  2508.                If 'buffer' is null or not specified, then the current
  2509.                buffer is assumed.
  2510.  
  2511.                A buffer name can be associated with a buffer by using
  2512.                the 'setbufname' function. For most ordinary editing
  2513.                buffers, the buffer name is usually a fully qualified
  2514.                file name.
  2515.  
  2516.   returns:     The descriptive name associated with a buffer.
  2517.   see also:    findbuf, setbufname
  2518.  
  2519.  
  2520.   getchar      col row buffer
  2521.   ──────────────────────────────────────────────────────────────────────
  2522.   remarks:     Retrieves the character at the specified column and row
  2523.                in the buffer 'buffer'. If 'buffer' is null or not
  2524.                specified, then the current buffer is assumed. If 'col'
  2525.                and 'row' are not specified, then the character at the
  2526.                cursor is retrieved. If the column is beyond the end of a
  2527.                line, null is returned.
  2528.  
  2529.   returns:     A one-character string if successful, otherwise null.
  2530.   see also:    gettext
  2531.  
  2532.   example:     getchar
  2533.                  // returns the character at the cursor in the
  2534.                  //   current buffer
  2535.                getchar 3 5
  2536.                  // returns the character at column 3, line 5 in the
  2537.                  //   current buffer
  2538.                getchar 1 1 "abc"
  2539.                  // returns the first character in the buffer "abc"
  2540.  
  2541.  
  2542.   getchild     window opt=[bt]
  2543.   ──────────────────────────────────────────────────────────────────────
  2544.   remarks:     Gets a child window for a window. If 'window' is not
  2545.                specified, the current window is assumed. The following
  2546.                options may be specified:
  2547.  
  2548.                  b - returns the bottommost child window
  2549.                  t - returns the topmost child window
  2550.  
  2551.   returns:     the windowid of the topmost or bottommost child window if
  2552.                successful, otherwise null.
  2553.  
  2554.   see also:    getparent, setnextwin, setparent, setprevwin
  2555.  
  2556.  
  2557.   getcol       buffer
  2558.   ──────────────────────────────────────────────────────────────────────
  2559.   remarks:     Gets the column position of the cursor. If 'buffer is
  2560.                null or not specified, the current buffer is assumed.
  2561.   returns:     The current cursor column position.
  2562.   see also:    getrow
  2563.  
  2564.  
  2565.   getcolor     component window
  2566.   ──────────────────────────────────────────────────────────────────────
  2567.   remarks:     Gets the color of a window component. If 'window' is not
  2568.                specified, the current window is assumed. See the
  2569.                'setcolor' function for 'component' values.
  2570.  
  2571.   returns:     the color of the specified window component.
  2572.   see also:    setcolor
  2573.  
  2574.   example:     getcolor 5
  2575.                  // returns the text color of the current window
  2576.                getcolor 6
  2577.                  // returns the mark color of the current window
  2578.  
  2579.  
  2580.   getcoord     opt=[ltrb1xyd] window
  2581.   ──────────────────────────────────────────────────────────────────────
  2582.   remarks:     Retrieves the coordinates and dimensions of a window. If
  2583.                'window' is not specified, the current window is assumed.
  2584.  
  2585.                The following options may be specified:
  2586.  
  2587.                  l - returns the virtual left edge of the window
  2588.                  t - returns the virtual top edge of the window
  2589.                  r - returns the virtual right edge of the window
  2590.                  b - returns the virtual bottom edge of the window
  2591.  
  2592.                  x - returns the window width (the width of the client
  2593.                      area if option '1' is specified)
  2594.                  y - returns the window height (the height of the client
  2595.                      area if option '1' is specified)
  2596.                  d - returns the height or width of the 'visible'
  2597.                      portion of the window on the screen, when used with
  2598.                      the 'x' or 'y' options above
  2599.  
  2600.                  0 - returns a main window coordinate
  2601.                  1 - returns a client window coordinate. If not
  2602.                      specified, main window coordinates are assumed.
  2603.  
  2604.  
  2605.   returns:     Information based on the options specified.
  2606.   see also:    movewindow, sizewindow
  2607.  
  2608.   example:     getcoord "l"
  2609.                  // return the virtual coordinate of the left edge of
  2610.                  //   the current window
  2611.                getcoord "1xd"
  2612.                  // returns the visible width of the current window
  2613.                  //   client area on the screen
  2614.  
  2615.  
  2616.   getcurrbook  buffer
  2617.   ──────────────────────────────────────────────────────────────────────
  2618.   remarks:     Retrieves the current bookmark for the specified buffer.
  2619.                If 'buffer' is null or not specified, the current buffer
  2620.                is assumed.
  2621.   returns:     The current bookmarkid for a buffer.
  2622.   see also:    currbook
  2623.  
  2624.  
  2625.   getcurrbuf 
  2626.   ──────────────────────────────────────────────────────────────────────
  2627.   remarks:     Gets the current buffer at the top of the buffer list.
  2628.   returns:     The current bufferid if successful, otherwise null.
  2629.   see also:    findbuf, getprevbuf, gotobuf
  2630.  
  2631.  
  2632.   getcurrcurs  buffer
  2633.   ──────────────────────────────────────────────────────────────────────
  2634.   remarks:     Retrieves the current cursorid for the specified buffer.
  2635.                If 'buffer' is null or not specified, the current buffer
  2636.                is assumed.
  2637.   returns:     The current cursorid for a buffer.
  2638.   see also:    currcursor, destroycursor, setcursor
  2639.  
  2640.  
  2641.   getcurrmark  buffer
  2642.   ──────────────────────────────────────────────────────────────────────
  2643.   remarks:     Retrieves the current markid for the specified buffer. If
  2644.                'buffer' is null or not specified, the current buffer is
  2645.                assumed.
  2646.   returns:     The current markid for a buffer.
  2647.   see also:    currmark
  2648.  
  2649.  
  2650.   getcurrobj 
  2651.   ──────────────────────────────────────────────────────────────────────
  2652.   remarks:     Gets the current (executing) object where this function
  2653.                is called.
  2654.   returns:     The current object.
  2655.   see also:    object
  2656.  
  2657.  
  2658.   getcurrpath  drive
  2659.   ──────────────────────────────────────────────────────────────────────
  2660.   remarks:     Retrieves the current path for the specified disk drive.
  2661.                If 'drive' is not specified, the current drive is
  2662.                assumed. If a drive is specified, it must be specified
  2663.                with a colon: 'C:', 'D:', etc.
  2664.   returns:     The current fully qualified path for the specified drive.
  2665.   see also:    currpath
  2666.  
  2667.  
  2668.   getcurrwin   opt=[c]
  2669.   ──────────────────────────────────────────────────────────────────────
  2670.   remarks:     Gets the current (topmost) window on the screen. If no
  2671.                options are specified, the topmost non-child window is
  2672.                returned. If option 'c' is specified, the topmost window
  2673.                is returned, whether or not the window is a child window.
  2674.   returns:     the current windowid
  2675.   see also:    getbotwin, gotowindow
  2676.  
  2677.  
  2678.   getcursbuf   cursor
  2679.   ──────────────────────────────────────────────────────────────────────
  2680.   remarks:     Retrieves the buffer associated with a cursor. If
  2681.                'cursor' is not specified, the current 'cursor' in the
  2682.                current buffer is assumed.
  2683.   returns:     The bufferid associated with the cursor if successful,
  2684.                otherwise null.
  2685.   see also:    getcurrbook
  2686.  
  2687.  
  2688.   getcurswin   cursor
  2689.   ──────────────────────────────────────────────────────────────────────
  2690.   remarks:     Retrieves the windowid, if any, associated with a cursor.
  2691.                If 'cursor' is not specified, the current 'cursor' in the
  2692.                current buffer is assumed.
  2693.   returns:     The windowid associated with a cursor if successful,
  2694.                otherwise null.
  2695.   see also:    getwincurs
  2696.  
  2697.  
  2698.   getdate 
  2699.   ──────────────────────────────────────────────────────────────────────
  2700.   remarks:     Gets the current date in the format set by the
  2701.                'international' function.
  2702.   returns:     The current date.
  2703.   see also:    getrawtime, gettime, international
  2704.  
  2705.  
  2706.   getdisk      opt=[cfmnv] drive
  2707.   ──────────────────────────────────────────────────────────────────────
  2708.   remarks:     Retrieves information about the specified disk drive. If
  2709.                a drive is not specified, the current drive is assumed.
  2710.                The following options can be specified:
  2711.  
  2712.                  c - returns the total drive capacity
  2713.                  f - returns the free space on the drive
  2714.                  m - returns a string composed of all available disk
  2715.                      drive letters. If option 'n' is also specified,
  2716.                      each drive letter is followed by '2' if a network
  2717.                      drive or '1' if not a network drive
  2718.                  v - returns the volume name for the drive
  2719.  
  2720.   returns:     Information based on the specified options.
  2721.   see also:    getcurrpath
  2722.  
  2723.   example:     getdisk 'f'
  2724.                  // returns the free space on the current drive
  2725.                getdisk 'v' "c:"
  2726.                  // returns the volume name for drive C
  2727.  
  2728.  
  2729.   getenv       environvariable
  2730.   ──────────────────────────────────────────────────────────────────────
  2731.   remarks:     Gets the value of the specified environment variable.
  2732.                'environvariable' must be in upper case.
  2733.  
  2734.   returns:     The value of an environment variable if successful,
  2735.                otherwise null.
  2736.   see also:    getos
  2737.  
  2738.   example:     getenv "PATH"        // returns the DOS 'PATH' string
  2739.  
  2740.  
  2741.   geterror     opt=[cfkls]
  2742.   ──────────────────────────────────────────────────────────────────────
  2743.   remarks:     Retrieves error information after compiling macro source
  2744.                code with the 'compilemacro' or 'eval' functions, or
  2745.                executing macros with the 'runmacro' and 'includemacro'
  2746.                functions. One of the following options can be specified:
  2747.  
  2748.                  c - error code (zero if successful)
  2749.                  f - source filename where the error occurred
  2750.                  k - column in the source file where the error occurred
  2751.                  l - line in the source file where the error occurred
  2752.                  s - an error information string.  The string contents
  2753.                      depend on the error code (see the 'compilemacro'
  2754.                      function for additional information).
  2755.  
  2756.                If no options are specified, 'c' is assumed.
  2757.  
  2758.   returns:     Information based on the options specified.
  2759.   see also:    compilemacro, eval, includemacro, runmacro
  2760.  
  2761.  
  2762.   geteventobj 
  2763.   ──────────────────────────────────────────────────────────────────────
  2764.   remarks:     Gets the current event object. The current event object
  2765.                is where events are dispatched by the editor.
  2766.   returns:     The current event objectid.
  2767.   see also:    eventobject
  2768.  
  2769.  
  2770.   getexe 
  2771.   ──────────────────────────────────────────────────────────────────────
  2772.   remarks:     Gets the name of the currently executing editor .EXE
  2773.                file, without path information or the .EXE extension.
  2774.   returns:     The editor .EXE name.
  2775.   see also:    getversion  getos
  2776.  
  2777.  
  2778.   getffile                                                   [Lib][fmgr]
  2779.   ──────────────────────────────────────────────────────────────────────
  2780.   remarks:     Gets the fully qualified file or directory name on the
  2781.                current line in the current file manager window.
  2782.   returns:     a fully qualified file or directory name.
  2783.   see also:    openf
  2784.  
  2785.  
  2786.   getfold      opt=[contbsl] row buffer
  2787.   ──────────────────────────────────────────────────────────────────────
  2788.   remarks:     Returns information about a fold at the specified row in
  2789.                a buffer. If 'buffer' is null or not specified, then the
  2790.                current buffer is assumed. If 'row' is not specified,
  2791.                then the line at the cursor is assumed. The following
  2792.                options may be specified:
  2793.  
  2794.                  l - Returns the line number of the top or bottom row in
  2795.                      an open fold. The following options may also be
  2796.                      specified:
  2797.  
  2798.                        t - returns the top line number
  2799.                        b - returns the bottom line number
  2800.  
  2801.                      If options 't' and 'b' are not specified, then 't'
  2802.                      is assumed.
  2803.  
  2804.                  n - Returns the total number of folds in the buffer
  2805.                      ('row' is ignored). The following options may be
  2806.                      specified:
  2807.  
  2808.                        c - returns the total number of closed folds
  2809.                        o - returns the total number of open folds
  2810.  
  2811.                      If options 'c' and 'o' are not specified, then 'co'
  2812.                      (both open and closed folds) is assumed.
  2813.  
  2814.                  s - returns the number of lines in the closed fold at
  2815.                      the specified row.
  2816.  
  2817.                If none of the above options are specified, then the
  2818.                following options may be used to test whether or not the
  2819.                current line is on a fold boundary:
  2820.  
  2821.                  c - returns true if the specified row is on the top or
  2822.                      bottom line of a closed fold.
  2823.                  o - returns true if the specified row is on the top or
  2824.                      bottom line of an open fold.
  2825.                  t - returns true if the specified row is on the top
  2826.                      line of a fold.
  2827.                  b - returns true if the specified row is on the bottom
  2828.                      line of a fold.
  2829.  
  2830.                If no options are specified, then 'ct' is assumed.
  2831.  
  2832.   returns:     Information based on the options specified.
  2833.  
  2834.   see also:    actualrow, apparentrow, closefold, createfold,
  2835.                destroyfold, fold?, foldblock, openfold
  2836.  
  2837.   example:     getfold
  2838.                  // returns true if a closed fold exists at the cursor
  2839.                  //   in the current buffer
  2840.                getfold 'ot'
  2841.                  // returns true if the cursor is on the top line of
  2842.                  //   an open fold
  2843.                getfold 'ns'
  2844.                  // returns the total number of closed folds in the
  2845.                  //   current buffer
  2846.                getfold 's'
  2847.                  // returns the number of lines in the closed fold at
  2848.                  //   the cursor in the current buffer
  2849.  
  2850.  
  2851.   gethistname                                                      [Lib]
  2852.   ──────────────────────────────────────────────────────────────────────
  2853.   remarks:     Gets the history bufferid for the current prompt. This
  2854.                function is only for use within prompts.
  2855.   returns:     the history bufferid for the current prompt.
  2856.   see also:    addhistory, askhistory, gethiststr, pophistory
  2857.  
  2858.  
  2859.   gethiststr   historybuffer                                    [Lib][a]
  2860.   ──────────────────────────────────────────────────────────────────────
  2861.   remarks:     Gets the most recently used (or added) string for the
  2862.                specified history buffer.
  2863.  
  2864.   returns:     the most recently used history string.
  2865.   see also:    addhistory, askhistory, pophistory
  2866.  
  2867.   example:     addhistory "_find" "apples"
  2868.                say (gethiststr "_find")       // displays 'apples'
  2869.  
  2870.  
  2871.   getkey       opt=[ds]
  2872.   ──────────────────────────────────────────────────────────────────────
  2873.   remarks:     Waits for a key to be entered, bypassing the editor event
  2874.                queue. The display is updated if needed. The following
  2875.                options may be specified:
  2876.  
  2877.                  d - disable updating of the display
  2878.                  s - include scancodes for non-function (typeable) keys
  2879.  
  2880.   returns:     A keycode for the key pressed.
  2881.   see also:    getkeycode, getkeyname
  2882.  
  2883.   example:     say "you pressed keycode: " + getkey
  2884.  
  2885.  
  2886.   getkeycode   keyname
  2887.   ──────────────────────────────────────────────────────────────────────
  2888.   remarks:     Gets the key code for the specified key name.
  2889.  
  2890.   returns:     a key code
  2891.   see also:    getkeyname
  2892.  
  2893.   example:     say "The keycode for <ctrl b> is: " +
  2894.                     (getkeycode "<ctrl b>")
  2895.  
  2896.  
  2897.   getkeyname   keycode
  2898.   ──────────────────────────────────────────────────────────────────────
  2899.   remarks:     Gets the key name for the specified key code.
  2900.   returns:     a key name
  2901.   see also:    getkeycode
  2902.  
  2903.   example:     say "You pressed the key: " + (getkeyname (getkey))
  2904.  
  2905.  
  2906.   getlinebeg   row buffer
  2907.   ──────────────────────────────────────────────────────────────────────
  2908.   remarks:     Gets the column of the first non-blank character in a
  2909.                line. If 'buffer' is null or not specified, then the
  2910.                current buffer is assumed. If 'row' is not specified,
  2911.                then the line at the cursor is assumed.
  2912.  
  2913.   returns:     The column of the first non-blank character, otherwise
  2914.                null.
  2915.   see also:    getlinelen
  2916.  
  2917.   example:     getlinebeg
  2918.                  // returns the first non-blank column of the current
  2919.                  //   line in the current buffer
  2920.                getlinelen 1
  2921.                  // returns the first non-blank column of the first
  2922.                  //   line in the current buffer
  2923.                getlinebeg 5 "abc"
  2924.                  // returns the first non-blank column of line 5 in
  2925.                  //   buffer "abc"
  2926.  
  2927.  
  2928.   getlinelen   row buffer
  2929.   ──────────────────────────────────────────────────────────────────────
  2930.   remarks:     Gets the length of a line. If 'buffer' is null or not
  2931.                specified, then the current buffer is assumed. If 'row'
  2932.                is not specified, then the line at the cursor is assumed.
  2933.  
  2934.   returns:     For non-binary buffers, the position of the last
  2935.                non-blank character in the line is returned. For binary
  2936.                buffers, the position of the last character in the line
  2937.                is returned.
  2938.  
  2939.   see also:    getbinarylen, getlinebeg
  2940.  
  2941.   example:     getlinelen
  2942.                  // returns the length of the line at the cursor in
  2943.                  //   the current buffer
  2944.                getlinelen 1
  2945.                  // returns the length of the first line in the
  2946.                  //   current buffer
  2947.                getlinelen 5 "abc"
  2948.                  // returns the length of line 5 in the buffer "abc"
  2949.  
  2950.  
  2951.   getlines     buffer
  2952.   ──────────────────────────────────────────────────────────────────────
  2953.   remarks:     Gets the total number of lines in a buffer. If 'buffer'
  2954.                is null or not specified, then the current buffer is
  2955.                assumed. A buffer will always have at least one line.
  2956.   returns:     The number of lines in a buffer.
  2957.  
  2958.  
  2959.   getloadinfo  opt=[dfst]
  2960.   ──────────────────────────────────────────────────────────────────────
  2961.   remarks:     Obtains information about the file or directory which was
  2962.                loaded by the most recent 'loadbuf' or 'insertbuf'
  2963.                function call. One of the following options can be
  2964.                specified:
  2965.  
  2966.                  d - return the number of subdirectories for a directory
  2967.                        load
  2968.                  f - return the number of files for a directory load
  2969.                  s - return total size of all files for a directory load
  2970.                  t - return the load type: 0 for files, 1 for
  2971.                        directories
  2972.  
  2973.   returns:     Information based on the options specified.
  2974.   see also:    insertbuf, loadbuf
  2975.  
  2976.  
  2977.   getmarkbot   mark
  2978.   ──────────────────────────────────────────────────────────────────────
  2979.   remarks:     Gets the bottommost line of a mark. If 'mark' is not
  2980.                specified, the default markid is assumed.
  2981.   returns:     The bottommost line of the mark if successful, otherwise
  2982.                null.
  2983.   see also:    getmarkleft, getmarkright, getmarktop
  2984.  
  2985.  
  2986.   getmarkbuf   mark
  2987.   ──────────────────────────────────────────────────────────────────────
  2988.   remarks:     Retrieves the buffer associated with a mark. If 'mark' is
  2989.                not specified, the default markid is assumed.
  2990.   returns:     The bufferid of the buffer associated with the mark
  2991.                if successful, otherwise null.
  2992.   see also:    getcurrmark
  2993.  
  2994.  
  2995.   getmarkcols  mark
  2996.   ──────────────────────────────────────────────────────────────────────
  2997.   remarks:     Gets the width of a mark. For line marks, 16001 is
  2998.                returned. For column, character, and stream marks, the
  2999.                end column minus the start column plus 1 is returned. If
  3000.                'mark' is not specified, the default markid is assumed.
  3001.   returns:     The mark width if successful, otherwise null.
  3002.   see also:    getmarkrows
  3003.  
  3004.  
  3005.   getmarkleft  mark
  3006.   ──────────────────────────────────────────────────────────────────────
  3007.   remarks:     Gets the leftmost column of a mark. For line marks, zero
  3008.                is returned. For character and stream marks, the starting
  3009.                column of the mark is returned. If 'mark' is not
  3010.                specified, the default markid is assumed.
  3011.   returns:     The leftmost column of the mark if successful, otherwise
  3012.                null.
  3013.   see also:    getmarkbot, getmarkright, getmarktop
  3014.  
  3015.  
  3016.   getmarkright  mark
  3017.   ──────────────────────────────────────────────────────────────────────
  3018.   remarks:     Gets the rightmost column of a mark. For line marks,
  3019.                16001 is returned. For character and stream marks, the
  3020.                ending column of the mark is returned. If 'mark' is not
  3021.                specified, the default markid is assumed.
  3022.   returns:     The rightmost column of the mark if successful, otherwise
  3023.                null.
  3024.   see also:    getmarkbot, getmarkleft, getmarktop
  3025.  
  3026.  
  3027.   getmarkrows  mark
  3028.   ──────────────────────────────────────────────────────────────────────
  3029.   remarks:     Gets the mark height (the number of lines spanned by the
  3030.                mark). If 'mark' is not specified, the default markid is
  3031.                assumed.
  3032.   returns:     The mark height if successful, otherwise null.
  3033.   see also:    getmarkcols
  3034.  
  3035.  
  3036.   getmarktop   mark
  3037.   ──────────────────────────────────────────────────────────────────────
  3038.   remarks:     Gets the topmost line of a mark.  If 'mark' is not
  3039.                specified, the default markid is assumed.
  3040.   returns:     The topmost line of the mark if successful, otherwise
  3041.                null.
  3042.   see also:    getmarkbot, getmarkleft, getmarkright
  3043.  
  3044.  
  3045.   getmarktype  mark
  3046.   ──────────────────────────────────────────────────────────────────────
  3047.   remarks:     Gets the mark type (column, line, character, or stream).
  3048.                If 'mark' is not specified, the default markid is
  3049.                assumed.
  3050.  
  3051.   returns:     A one-byte string indicating the mark type:
  3052.                  l - line mark
  3053.                  k - column mark
  3054.                  c - character mark
  3055.                  s - stream mark
  3056.  
  3057.   see also:    markchar, markcolumn, markline, markstream
  3058.  
  3059.  
  3060.   getmarkuse 
  3061.   ──────────────────────────────────────────────────────────────────────
  3062.   remarks:     Gets the default markid.
  3063.   returns:     the default markid.
  3064.   see also:    usemark
  3065.  
  3066.  
  3067.   getmenu      opt=[hwnxym] row menubuffer
  3068.   ──────────────────────────────────────────────────────────────────────
  3069.   remarks:     Retrieves information about a menu buffer created with
  3070.                the 'menu' keyword. 'menubuffer' specifies the name of
  3071.                the menu. If 'menubuffer' is null or not specified, then
  3072.                the current buffer is assumed. If 'row' is not specified,
  3073.                then the line at the cursor is assumed.
  3074.  
  3075.                One of the following options can be specified.
  3076.  
  3077.                  h - return the menu highlight column for the row
  3078.                  m - return TRUE if the buffer is a menu buffer
  3079.                  n - return the menu item description text
  3080.                  w - return the menu width
  3081.                  y - return the cursor row at last menu exit
  3082.                  x - return the menu item compiled macro code (if any)
  3083.  
  3084.   returns:     Information based on the options specified.
  3085.   see also:    menu
  3086.  
  3087.  
  3088.   getmenubar   opt=[cfnosw] menubar[1-5] item window
  3089.   ──────────────────────────────────────────────────────────────────────
  3090.   remarks:     Retrieves information about a menu bar. If 'window' is
  3091.                not specified, the current window is assumed.
  3092.  
  3093.                'menubar' (1-5) specifies one of the 5 possible menu bars
  3094.                for a window. If 'menubar' is not specified, 1 is assumed
  3095.                (the primary menu bar).
  3096.  
  3097.                'item' is an integer specifying the relative position of
  3098.                a menu bar item from the beginning of the menu bar. If
  3099.                'item' is not specified, the current highlighted menu bar
  3100.                item is assumed.
  3101.  
  3102.                The following options may be specified:
  3103.  
  3104.                  c - returns the highlighted character for a menu bar
  3105.                      item
  3106.                  f - returns the menu bar item function string
  3107.                  n - returns the total number of menu bar items
  3108.                  o - returns the offset (in columns) of the menu bar
  3109.                      item description text from the beginning of the
  3110.                      menu bar
  3111.                  s - returns the menu bar item description text
  3112.                  w - returns the menu bar width (for west menus only)
  3113.  
  3114.                If no options are specified, the current highlighted
  3115.                menu bar item is returned.
  3116.  
  3117.   returns:     Information based on the options specified
  3118.   see also:    hilitebar, menubar
  3119.  
  3120.   example:     getmenubar
  3121.                  // returns the currently highlighted item on the
  3122.                  //   primary menu bar (tests if an item is highlighted)
  3123.                getmenubar 'n' 2
  3124.                  // returns the total number of menu bar items for
  3125.                  //   menu bar 2
  3126.                getmenubar 's' '' 3
  3127.                  // returns the description for the third menu bar item
  3128.                  //   on the primary menu bar
  3129.  
  3130.  
  3131.   getmousex    opt=[e]
  3132.   ──────────────────────────────────────────────────────────────────────
  3133.   remarks:     Gets the virtual X coordinate of the mouse pointer. If
  3134.                option 'e' is specified, the X coordinate where the last
  3135.                mouse event occurred is returned.
  3136.   returns:     the mouse virtual X coordinate
  3137.   see also:    getmousex, mousepos
  3138.  
  3139.  
  3140.   getmousey    opt=[e]
  3141.   ──────────────────────────────────────────────────────────────────────
  3142.   remarks:     Gets the virtual Y coordinate of the mouse pointer. If
  3143.                option 'e' is specified, the Y coordinate where the last
  3144.                mouse event occurred is returned.
  3145.   returns:     the mouse virtual Y coordinate
  3146.   see also:    getmousey, mousepos
  3147.  
  3148.  
  3149.   getnextwin   window opt=[z]
  3150.   ──────────────────────────────────────────────────────────────────────
  3151.   remarks:     Gets the window after 'window' the window list. If
  3152.                'window' is not specified, the current window is assumed.
  3153.                If option 'z' is specified, any window may be returned,
  3154.                otherwise only a window at the same child-level as
  3155.                'window' is returned.
  3156.   returns:     the windowid of the next window if successful, otherwise
  3157.                null.
  3158.   see also:    getchild, getprevwin
  3159.  
  3160.  
  3161.   getobjsize   object
  3162.   ──────────────────────────────────────────────────────────────────────
  3163.   remarks:     Retrieves the number of functions and object variables in
  3164.                the specified object. If 'object' is not specified, then
  3165.                the current object is assumed.
  3166.   returns:     The object size if successful, otherwise null.
  3167.   see also:    object?
  3168.  
  3169.  
  3170.   getos        opt=[vm]
  3171.   ──────────────────────────────────────────────────────────────────────
  3172.   remarks:     Gets the operating system name or the operating system
  3173.                version. One of the following options may be specified:
  3174.  
  3175.                  v - return the major OS version number
  3176.                  m - return the minor OS version number
  3177.  
  3178.                If no options are specified, the operation system name
  3179.                'DOS' is returned.
  3180.  
  3181.   returns:     The operating system name or version.
  3182.   see also:    getversion
  3183.  
  3184.  
  3185.   getpalette   position
  3186.   ──────────────────────────────────────────────────────────────────────
  3187.   remarks:     Retrieves a color attribute from a 100-byte user-defined
  3188.                palette area defined with the 'setpalette' function. If
  3189.                no position is specified, the entire palette area is
  3190.                returned. The editor library code (LIB.X) expects color
  3191.                attributes to be in the positions defined in COLOR.AML.
  3192.   returns:     a numeric color attribute, or the 100-byte palette.
  3193.   see also:    setpalatte
  3194.  
  3195.  
  3196.   getparent    window
  3197.   ──────────────────────────────────────────────────────────────────────
  3198.   remarks:     Gets the parent window of a window. If 'window' is not
  3199.                specified, the current window is assumed.
  3200.   returns:     the windowid of the parent window if successful,
  3201.                otherwise null.
  3202.   see also:    getchild, setparent
  3203.  
  3204.  
  3205.   getprevbook  bookmark
  3206.   ──────────────────────────────────────────────────────────────────────
  3207.   remarks:     Gets the bookmark preceding 'bookmark' in the bookmark
  3208.                list for the current buffer. If 'bookmark' is not
  3209.                specified, the current 'bookmark' in the current buffer
  3210.                is assumed.
  3211.   returns:     The bookmarkid of the previous bookmark if successful,
  3212.                otherwise null.
  3213.   see also:    currbook
  3214.  
  3215.  
  3216.   getprevbuf   buffer
  3217.   ──────────────────────────────────────────────────────────────────────
  3218.   remarks:     Gets the buffer before 'buffer' in the buffer list. If
  3219.                'buffer' is null or not specified, then the current
  3220.                buffer is assumed.
  3221.   returns:     The previous bufferid, or null if no previous buffer
  3222.                exists.
  3223.   see also:    findbuf, getcurrbuf
  3224.  
  3225.   example:     buffer = getcurrbuf           // cycles through existing
  3226.                while buffer do               //   buffers
  3227.                  buffer = getprevbuf buffer
  3228.                end 
  3229.  
  3230.  
  3231.   getprevcurs  cursor
  3232.   ──────────────────────────────────────────────────────────────────────
  3233.   remarks:     Gets the cursor before 'cursor' in the cursor list for
  3234.                the current buffer. If 'cursor' is not specified, the
  3235.                current 'cursor' in the current buffer is assumed.
  3236.   returns:     The cursorid of the previous cursor if successful,
  3237.                otherwise null.
  3238.   see also:    currcursor
  3239.  
  3240.  
  3241.   getprevmark  mark
  3242.   ──────────────────────────────────────────────────────────────────────
  3243.   remarks:     Gets the mark preceding 'mark' in the mark list for the
  3244.                current buffer. If 'mark' is not specified, the default
  3245.                markid is assumed.
  3246.   returns:     The markid of the previous mark if successful, otherwise
  3247.                null.
  3248.   see also:    currmark
  3249.  
  3250.  
  3251.   getprevwin   window opt=[z]
  3252.   ──────────────────────────────────────────────────────────────────────
  3253.   remarks:     Gets the window before 'window' the window list. If
  3254.                'window' is not specified, the current window is assumed.
  3255.                If option 'z' is specified, any window may be returned,
  3256.                otherwise only a window at the same child-level as
  3257.                'window' is returned.
  3258.   returns:     the windowid of the previous window if successful,
  3259.                otherwise null.
  3260.   see also:    getchild, getnextwin
  3261.  
  3262.  
  3263.   getrawtime 
  3264.   ──────────────────────────────────────────────────────────────────────
  3265.   remarks:     Gets the current date and time in a 17 character string.
  3266.                The format of the string is as follows:
  3267.  
  3268.                format:
  3269.                  YYYYMMDDWhhmmssuu
  3270.  
  3271.                where:
  3272.                  YYYY = year
  3273.                  MM   = month [1-12]
  3274.                  DD   = day [1-31]
  3275.                  W    = day of the week [0-6, 0=sunday]
  3276.                  hh   = hour [0-23]
  3277.                  mm   = minutes [0-59]
  3278.                  ss   = seconds [0-59]
  3279.                  uu   = hundredths of a second [0-99]
  3280.  
  3281.   returns:     The current date and time in raw format.
  3282.   see also:    getdate, gettime
  3283.  
  3284.  
  3285.   getregion    virtualX virtualY window
  3286.   ──────────────────────────────────────────────────────────────────────
  3287.   remarks:     Returns an integer code identifying the region of a
  3288.                window containing the virtual screen coordinate
  3289.                'virtualX', 'virtualY'. If 'window' is not specified, the
  3290.                current window is assumed. If 'virtualX' and 'virtualY'
  3291.                are not specified, the current mouse position is assumed.
  3292.                This function is useful for determining where a mouse
  3293.                click occurred.
  3294.  
  3295.                The following table shows the integer codes and the
  3296.                corresponding window regions:
  3297.  
  3298.                code        region
  3299.                ────        ──────
  3300.                  0         'virtualX', 'virtualY' is not in the window
  3301.                  1         client area
  3302.  
  3303.                  2         north border
  3304.                  3         east border
  3305.                  4         south border
  3306.                  5         west border
  3307.                  6         northwest border corner
  3308.                  7         northeast border corner
  3309.                  8         southeast border corner
  3310.                  9         southwest border corner
  3311.  
  3312.                 11         north title bar
  3313.                 12         south title bar
  3314.                 13         west title
  3315.                 14         east title
  3316.  
  3317.                 19         vertical & horizontal scroll bar intersection
  3318.                 21         vertical scroll bar up arrow
  3319.                 22         vertical scroll bar down arrow
  3320.                 23         vertical scroll bar page-up bar
  3321.                 24         vertical scroll bar page-down bar
  3322.                 25         vertical scroll bar thumb
  3323.  
  3324.                 31         horizontal scroll bar left arrow
  3325.                 32         horizontal scroll bar right arrow
  3326.                 33         horizontal scroll bar page-left bar
  3327.                 34         horizontal scroll bar page-right bar
  3328.                 35         horizontal scroll bar thumb
  3329.  
  3330.                 51 - 100   window title bar controls from left to right
  3331.  
  3332.                101 - 200   primary menu bar items from left to right
  3333.                201 - 300   menu bar 2 items from left to right
  3334.                301 - 400   menu bar 3 items from left to right
  3335.                401 - 500   menu bar 4 items from left to right
  3336.                501 - 600   menu bar 5 items from top to bottom
  3337.  
  3338.   returns:     a window region code.
  3339.  
  3340.   example:     function <lbutton>   // determine where a left mouse
  3341.                  case getregion     //   button click occurred
  3342.                    when 1  ...      // client area?
  3343.                    when 11 ...      // north title bar?
  3344.                    .
  3345.                    .
  3346.                  end 
  3347.                end 
  3348.  
  3349.  
  3350.   getrow       buffer
  3351.   ──────────────────────────────────────────────────────────────────────
  3352.   remarks:     Gets the current line number of the cursor. If 'buffer'
  3353.                is null or not specified, the current buffer is assumed.
  3354.   returns:     The current line number of the cursor.
  3355.   see also:    getcol, getlines
  3356.  
  3357.  
  3358.   getsettings                                                 [Lib][mon]
  3359.   ──────────────────────────────────────────────────────────────────────
  3360.   remarks:     Gets the current window settings as they appear on the
  3361.                edit window title bar. See the 'setting' command for a
  3362.                description of window settings.
  3363.   returns:     a string containing the current window settings.
  3364.   see also:    setting, setting?
  3365.  
  3366.  
  3367.   gettext      col length row buffer
  3368.   ──────────────────────────────────────────────────────────────────────
  3369.   remarks:     Retrieves text within a line in the specified buffer. If
  3370.                'buffer' is null or not specified, then the current
  3371.                buffer is assumed. If 'row' is not specified, then the
  3372.                line at the cursor is assumed. If 'col' is not specified,
  3373.                then column 1 is assumed. If 'length' is not specified,
  3374.                then the length from the specified column to the end of
  3375.                the line is assumed. If 'col' is beyond the end of the
  3376.                line, then null is returned.
  3377.  
  3378.   returns:     A copy of a line (or portion of the line) if successful,
  3379.                otherwise null.
  3380.  
  3381.   see also:    getchar
  3382.  
  3383.   example:     gettext
  3384.                  // returns the line at the cursor in the current buffer
  3385.                gettext 3
  3386.                  // returns the portion of the current line from
  3387.                  //   column 3 to the end of the line
  3388.                gettext 3 5
  3389.                  // returns 5 characters at column 3, on the current line
  3390.                  //   in the current buffer
  3391.                gettext 3 5 20 "abc"
  3392.                  // returns 5 characters at column 3, line 20 in the
  3393.                  //   buffer "abc"
  3394.  
  3395.  
  3396.   gettitle     titleid[1-5] window opt=[h]
  3397.   ──────────────────────────────────────────────────────────────────────
  3398.   remarks:     Gets a window title string for a window. If 'window' is
  3399.                not specified, the current window is assumed. 'titleid'
  3400.                specifies which window title to retrieve. If 'titleid' is
  3401.                zero, then 1 is assumed (the primary title).
  3402.  
  3403.                If option 'h' is specified, then this function returns
  3404.                the highlighted position within the title string.
  3405.  
  3406.   returns:     a window title string.
  3407.   see also:    settitle
  3408.  
  3409.   example:     gettitle
  3410.                  // returns title 1 for the current window
  3411.                gettitle 3 "abc"
  3412.                  // returns title 3 for window "abc"
  3413.  
  3414.  
  3415.   gettime 
  3416.   ──────────────────────────────────────────────────────────────────────
  3417.   remarks:     Gets the current time in the format set by the
  3418.                'international' function.
  3419.   returns:     The current time.
  3420.   see also:    getdate, getrawtime
  3421.  
  3422.  
  3423.   getversion 
  3424.   ──────────────────────────────────────────────────────────────────────
  3425.   remarks:     Gets the current version of the editor.
  3426.   returns:     The current version (major and minor) of the editor as a
  3427.                string.
  3428.   see also:    getexe, getos
  3429.  
  3430.  
  3431.   getvidbot 
  3432.   ──────────────────────────────────────────────────────────────────────
  3433.   remarks:     Gets the virtual coordinate of the bottommost row of the
  3434.                physical screen.
  3435.   returns:     the bottom edge of the physical screen.
  3436.   see also:    getvidleft, getvidright, getvidrows, getvidtop
  3437.  
  3438.  
  3439.   getvidcols 
  3440.   ──────────────────────────────────────────────────────────────────────
  3441.   remarks:     Gets the number of columns on the screen.
  3442.   returns:     the number of columns on the screen.
  3443.   see also:    getvidleft, getvidright, getvidrows
  3444.  
  3445.  
  3446.   getvidleft 
  3447.   ──────────────────────────────────────────────────────────────────────
  3448.   remarks:     Gets the virtual coordinate of the leftmost column of the
  3449.                physical screen.
  3450.   returns:     the left edge of the physical screen.
  3451.   see also:    getvidbot, getvidcols, getvidright, getvidtop
  3452.  
  3453.  
  3454.   getvidright 
  3455.   ──────────────────────────────────────────────────────────────────────
  3456.   remarks:     Gets the virtual coordinate of the rightmost column of
  3457.                the physical screen.
  3458.   returns:     the right edge of the physical screen.
  3459.   see also:    getvidbot, getvidcols, getvidleft, getvidtop
  3460.  
  3461.  
  3462.   getvidrows 
  3463.   ──────────────────────────────────────────────────────────────────────
  3464.   remarks:     Gets the number of rows on the screen.
  3465.   returns:     the number of rows on the screen.
  3466.   see also:    getvidbot, getvidcols, getvidtop
  3467.  
  3468.  
  3469.   getvidtop 
  3470.   ──────────────────────────────────────────────────────────────────────
  3471.   remarks:     Gets the virtual coordinate of the topmost row of the
  3472.                physical screen.
  3473.   returns:     the top edge of the physical screen.
  3474.   see also:    getvidbot, getvidleft, getvidright, getvidrows
  3475.  
  3476.  
  3477.   getviewbot   window
  3478.   ──────────────────────────────────────────────────────────────────────
  3479.   remarks:     Gets the line number of the bottommost visible row in a
  3480.                window. If 'window' is not specified, the current window
  3481.                is assumed.
  3482.   returns:     the bottommost visible row in a window.
  3483.   see also:    getviewleft, getviewright, getviewtop
  3484.  
  3485.  
  3486.   getviewcols  window
  3487.   ──────────────────────────────────────────────────────────────────────
  3488.   remarks:     Gets the number of visible columns in a window. If
  3489.                'window' is not specified, the current window is assumed.
  3490.   returns:     the number of visible columns.
  3491.   see also:    getviewleft, getviewright, getviewrows
  3492.  
  3493.  
  3494.   getviewleft  window
  3495.   ──────────────────────────────────────────────────────────────────────
  3496.   remarks:     Gets the leftmost column in a window. If 'window' is not
  3497.                specified, the current window is assumed.
  3498.   returns:     the leftmost column in a window.
  3499.   see also:    getviewbot, getviewright, getviewtop
  3500.  
  3501.  
  3502.   getviewright  window
  3503.   ──────────────────────────────────────────────────────────────────────
  3504.   remarks:     Gets the rightmost visible column in a window. If
  3505.                'window' is not specified, the current window is assumed.
  3506.   returns:     the rightmost visible column in a window.
  3507.   see also:    getviewbot, getviewleft, getviewtop
  3508.  
  3509.  
  3510.   getviewrows  window
  3511.   ──────────────────────────────────────────────────────────────────────
  3512.   remarks:     Gets the number of visible rows in a window. If 'window'
  3513.                is not specified, the current window is assumed.
  3514.   returns:     the number of visible rows.
  3515.   see also:    getviewbot, getviewcols, getviewtop
  3516.  
  3517.  
  3518.   getviewtop   window
  3519.   ──────────────────────────────────────────────────────────────────────
  3520.   remarks:     Gets the line number of the topmost row in a window. If
  3521.                'window' is not specified, the current window is assumed.
  3522.   returns:     the topmost row in a window.
  3523.   see also:    getviewbot, getviewleft, getviewright
  3524.  
  3525.  
  3526.   getwinbuf    window
  3527.   ──────────────────────────────────────────────────────────────────────
  3528.   remarks:     Gets the buffer associated with a window. If 'window' is
  3529.                not specified, the current window is assumed.
  3530.   returns:     the bufferid associated with the window is successful,
  3531.                otherwise null.
  3532.   see also:    getwincurs, setwincurs
  3533.  
  3534.  
  3535.   getwincount  window
  3536.   ──────────────────────────────────────────────────────────────────────
  3537.   remarks:     Gets the number of windows on the screen. If 'window' is
  3538.                specified, this function returns the number of child
  3539.                windows attached to 'window'.
  3540.   returns:     the number of windows on the screen, or the number of
  3541.                child windows attached to a window.
  3542.   see also:    getchild, setparent
  3543.  
  3544.  
  3545.   getwinctrl   n  window
  3546.   ──────────────────────────────────────────────────────────────────────
  3547.   remarks:     Gets the 'nth' title bar control for a window. If
  3548.                'window' is not specified, the current window is assumed.
  3549.   returns:     a one-character title bar control
  3550.   see also:    setwinctrl
  3551.  
  3552.  
  3553.   getwincurs   window
  3554.   ──────────────────────────────────────────────────────────────────────
  3555.   remarks:     Gets the cursor associated with a window. If 'window' is
  3556.                not specified, the current window is assumed. Only
  3557.                cursors associated with a buffer are returned.
  3558.   returns:     the cursorid of the window cursor if successful,
  3559.                otherwise null.
  3560.   see also:    getwinbuf, setwincurs
  3561.  
  3562.  
  3563.   getwinobj    window
  3564.   ──────────────────────────────────────────────────────────────────────
  3565.   remarks:     Gets the event object associated with a window. If
  3566.                'window' is not specified, the current window is assumed.
  3567.   returns:     the window event object.
  3568.   see also:    setwinobj
  3569.  
  3570.  
  3571.   getwinscr    virtualX virtualY window
  3572.   ──────────────────────────────────────────────────────────────────────
  3573.   remarks:     Translates a virtual x,y coordinate in a scroll bar to a
  3574.                column or row in a window. If 'window' is not specified,
  3575.                the current window is assumed. This function can be used
  3576.                to translate a mouse pointer position in a scroll bar to
  3577.                a position in a window.
  3578.  
  3579.   returns:     A window column if virtualX, virtualY lies within a
  3580.                horizontal scroll bar, or a window row if virtualX,
  3581.                virtualY lies within a vertical scroll bar, otherwise
  3582.                null.
  3583.  
  3584.   see also:    getviewbot, getviewleft, getviewright, getviewtop
  3585.  
  3586.  
  3587.   getx 
  3588.   ──────────────────────────────────────────────────────────────────────
  3589.   remarks:     Gets the cursor column in the current video window. This
  3590.                function is ignored for windows which contain a buffer.
  3591.   returns:     the cursor column in the current video window
  3592.   see also:    clearwindow, gety, gotoxy, hilite, writeline, writestr
  3593.  
  3594.  
  3595.   gety 
  3596.   ──────────────────────────────────────────────────────────────────────
  3597.   remarks:     Gets the cursor row in the current video window. This
  3598.                function is ignored for windows which contain a buffer.
  3599.   returns:     the cursor row in the current video window
  3600.   see also:    clearwindow, getx, gotoxy, hilite, writeline, writestr
  3601.  
  3602.  
  3603.   gotobook     bookmark
  3604.   ──────────────────────────────────────────────────────────────────────
  3605.   remarks:     Moves the cursor to a bookmark. Only the current cursor
  3606.                in the buffer associated with the bookmark is moved. If
  3607.                'bookmark' is not specified, the current 'bookmark' in
  3608.                the current buffer is assumed.
  3609.   returns:     TRUE if successful, otherwise null.
  3610.   see also:    getcurrbook, setbook
  3611.  
  3612.  
  3613.   gotobuf      buffer
  3614.   ──────────────────────────────────────────────────────────────────────
  3615.   remarks:     Makes the specified buffer the current buffer. If
  3616.                'buffer' is not specified, the buffer at the top of the
  3617.                buffer list becomes the current buffer.
  3618.  
  3619.                Unlike the 'currbuf' function, the position of the buffer
  3620.                in the buffer is list is not changed.
  3621.  
  3622.   returns:     TRUE if successful, otherwise null.
  3623.   see also:    currbuf, findbuf, getcurrbuf
  3624.  
  3625.   example:     gotobuf 'abc'   // switch to buffer 'abc'
  3626.                  .
  3627.                  .
  3628.                gotobuf         // switch back to the top buffer
  3629.  
  3630.  
  3631.   gotobar      item                                     [Lib][edit_fmgr]
  3632.   ──────────────────────────────────────────────────────────────────────
  3633.   remarks:     Activates the specified menu bar item from the primary
  3634.                menu bar. 'item' specifies the menu bar item or the menu
  3635.                bar description text.
  3636.  
  3637.   returns:     nothing
  3638.   see also:    getmenubar, gotobar2, menubar
  3639.  
  3640.   example:     gotobar 1       // highlights the 'File' menu bar item
  3641.                gotobar "File"  // highlights the 'File' menu bar item
  3642.  
  3643.  
  3644.   gotobar2     item                                     [Lib][edit_fmgr]
  3645.   ──────────────────────────────────────────────────────────────────────
  3646.   remarks:     Activates the specified menu bar item on the toolbar of
  3647.                an edit window, or the drive bar of a file manager
  3648.                window. 'item' specifies the menu bar item or the menu
  3649.                bar description text.
  3650.  
  3651.   returns:     nothing
  3652.   see also:    getmenubar, gotobar, menubar
  3653.  
  3654.  
  3655.   gotomatch    char-pairs                                       [Lib][a]
  3656.   ──────────────────────────────────────────────────────────────────────
  3657.   remarks:     Finds the matching character for a character specified in
  3658.                'char-pairs'.
  3659.   returns:     Non-zero if found, otherwise null.
  3660.   example:     gotomatch "(){}[]<>"
  3661.  
  3662.  
  3663.   gotomenu     pulldown                                 [Lib][edit_fmgr]
  3664.   ──────────────────────────────────────────────────────────────────────
  3665.   remarks:     Displays the specified pulldown menu from the primary
  3666.                menu bar. 'pulldown' specifies the menu bar item or menu
  3667.                bar item description for the pulldown menu.
  3668.  
  3669.   returns:     nothing
  3670.   see also:    getmenu, menu, submenu
  3671.  
  3672.   example:     gotomenu 1        // displays the 'File' pulldown menu
  3673.                gotomenu "File"
  3674.  
  3675.  
  3676.   gotopos      col row buffer
  3677.   ──────────────────────────────────────────────────────────────────────
  3678.   remarks:     Moves the cursor to the specified column and row. If
  3679.                'buffer' is null or not specified, the current buffer is
  3680.                assumed.
  3681.  
  3682.   returns:     TRUE if successful, otherwise null.
  3683.   see also:    col  row  movepos
  3684.  
  3685.   example:     gotopos 1 1
  3686.                   // moves the cursor to column one of the first line
  3687.  
  3688.  
  3689.   gotowindow   window
  3690.   ──────────────────────────────────────────────────────────────────────
  3691.   remarks:     Makes the specified window the current window. If
  3692.                'window' is not specified, the topmost window on the
  3693.                screen becomes the current window.
  3694.  
  3695.                Note that this function does not change the ordering of
  3696.                windows on the screen. It changes the 'current' or
  3697.                default window referenced in builtin window functions.
  3698.  
  3699.   returns:     TRUE if successful, otherwise null.
  3700.   see also:    getcurrwin
  3701.  
  3702.  
  3703.   gotoxy       col row
  3704.   ──────────────────────────────────────────────────────────────────────
  3705.   remarks:     Moves the cursor to the specified column and row in the
  3706.                current video window. This function is ignored for
  3707.                windows which contain a buffer.
  3708.   returns:     nothing
  3709.   see also:    clearwindow, getx, gety, hilite, writeline, writestr
  3710.  
  3711.  
  3712.   halt 
  3713.   ──────────────────────────────────────────────────────────────────────
  3714.   remarks:     Terminates the execution of the editor immediately and
  3715.                unconditionally.
  3716.   returns:     nothing
  3717.   see also:    delay, exec
  3718.  
  3719.  
  3720.   hex2bin      hexstring
  3721.   ──────────────────────────────────────────────────────────────────────
  3722.   remarks:     Converts a hexadecimal string, composed of only the
  3723.                characters 0-9 and A-F, to a binary string.
  3724.  
  3725.   returns:     a binary string.
  3726.   see also:    bin2hex
  3727.  
  3728.   example:     hex2bin "61"           // returns 'a'
  3729.                hex2bin "616263"       // returns 'abc'
  3730.  
  3731.  
  3732.   hidebuf      buffer
  3733.   ──────────────────────────────────────────────────────────────────────
  3734.   remarks:     Hides a buffer from the 'getprevbuf' function. If
  3735.                'buffer' is null or not specified, then the current
  3736.                buffer is assumed. This function can used to prevent
  3737.                temporary or internal buffers from being displayed on
  3738.                editor buffer lists.
  3739.   returns:     nothing
  3740.   see also:    getprevbuf
  3741.  
  3742.  
  3743.   hidecursor 
  3744.   ──────────────────────────────────────────────────────────────────────
  3745.   remarks:     Hides the physical cursor in the current window. If the
  3746.                current window contains a buffer, the effects of this
  3747.                function are temporary and will disappear the next time
  3748.                the display is updated.
  3749.   returns:     nothing
  3750.   see also:    showcursor
  3751.  
  3752.  
  3753.   hidemouse 
  3754.   ──────────────────────────────────────────────────────────────────────
  3755.   remarks:     Hides the mouse pointer.
  3756.   returns:     nothing
  3757.   see also:    showmouse
  3758.  
  3759.  
  3760.   hidewindow   window
  3761.   ──────────────────────────────────────────────────────────────────────
  3762.   remarks:     Hides a window temporarily. If 'window' is null or not
  3763.                specified, then the current window is assumed. The window
  3764.                will be shown again the next time the display is updated.
  3765.   returns:     nothing
  3766.   see also:    showwindow
  3767.  
  3768.  
  3769.   hilite       length height color col row
  3770.   ──────────────────────────────────────────────────────────────────────
  3771.   remarks:     Highlights a rectangular area in the current window with
  3772.                the specified color attribute. 'length' and 'height'
  3773.                specify the dimensions of the highlighted rectangle.
  3774.                'col' and 'row' specify the upper left corner of the
  3775.                rectangle. If 'col' and 'row' are not specified, the
  3776.                current cursor position is assumed.
  3777.  
  3778.                If the current window displays a buffer, the effects of
  3779.                this function are temporary and will disappear the next
  3780.                time the display is updated.
  3781.  
  3782.   returns:     nothing
  3783.   see also:    clearwindow, getx, gety, gotoxy, writeline, writestr
  3784.  
  3785.   example:     hilite 6 1 95
  3786.                  // highlights a word at the cursor of length 6
  3787.                  //   with the color 'white on magenta'
  3788.  
  3789.  
  3790.   hilitebar    menubar[1-5] item window
  3791.   ──────────────────────────────────────────────────────────────────────
  3792.   remarks:     Highlights or un-highlights a menu bar item in a window.
  3793.                There can only be one highlighted item per menu bar. If
  3794.                'window' is not specified, the current window is assumed.
  3795.  
  3796.                'menubar' specifies one of the 5 available menu bars in
  3797.                the window. If 'menubar' is not specified, 1 is assumed
  3798.                (the primary menu bar).
  3799.  
  3800.                'item' indicates the relative position of the menu bar
  3801.                item from the beginning of the menu bar (1 for the first
  3802.                item, 2 for the second item, and so on).
  3803.  
  3804.                If 'item' is null or zero, then the highlight is removed
  3805.                from any currently highlighted item in the menu bar.
  3806.  
  3807.   returns:     If successful, the offset (in character positions) of the
  3808.                specified menu bar item from the beginning of the menu
  3809.                bar, otherwise null.
  3810.  
  3811.   see also:    getmenubar, menubar
  3812.  
  3813.   example:     hilitebar
  3814.                  // removes the highlight from the primary menu bar
  3815.                hilitebar 2 5
  3816.                  // highlights item 5 on menu bar 2
  3817.  
  3818.  
  3819.   icompare     string1 string2 ...
  3820.   ──────────────────────────────────────────────────────────────────────
  3821.   remarks:     Tests if 'string1' is equal to any the succeeding
  3822.                arguments, ignoring case.
  3823.  
  3824.   returns:     TRUE if the comparison succeeds, otherwise null.
  3825.   see also:    flipcase, locase, upcase
  3826.  
  3827.   example:     icompare "apples" "Apples"     // returns TRUE
  3828.                icompare "apples" "oranges"    // returns null
  3829.  
  3830.  
  3831.   includemacro  filename arg2 arg3 ...
  3832.   ──────────────────────────────────────────────────────────────────────
  3833.   remarks:     Loads the compiled macro code in the file 'filename' and
  3834.                executes it in the current event object. The 'filename'
  3835.                is passed to the macro as the first argument, followed by
  3836.                the optional arguments 'arg2', 'arg3', etc.
  3837.  
  3838.   returns:     The return value from executing the macro.
  3839.   see also:    compilemacro, eval, runmacro
  3840.  
  3841.   example:     includemacro "C:\\AURORA\\MACRO\\MYMACRO.X"
  3842.  
  3843.  
  3844.   inheritkeys  [0/1] object
  3845.   ──────────────────────────────────────────────────────────────────────
  3846.   remarks:     Enables (1) or disables (0) the inheritance of keyboard
  3847.                events for the specified object. If 'object' is not
  3848.                specified, then the current object is assumed. When an
  3849.                object is initially created, keyboard inheritance is
  3850.                enabled.
  3851.   returns:     nothing
  3852.   see also:    object
  3853.  
  3854.  
  3855.   inmark?      col row buffer
  3856.   ──────────────────────────────────────────────────────────────────────
  3857.   remarks:     Tests if the specified column and row position lies
  3858.                within a mark. If 'col' and 'row' are not specified, then
  3859.                the current cursor position is assumed. If 'buffer' is
  3860.                not specified, the current buffer is assumed.
  3861.  
  3862.   returns:     The topmost markid containing 'col','row', otherwise
  3863.                null.
  3864.   see also:    mark?
  3865.  
  3866.   example:     if inmark? then      // if cursor is within a mark
  3867.                  deleteblock        //   then delete the mark text
  3868.                else                 // otherwise..
  3869.                  delchar            //   delete the char at the cursor
  3870.                end 
  3871.  
  3872.  
  3873.   insabove     string col row buffer
  3874.   ──────────────────────────────────────────────────────────────────────
  3875.   remarks:     Inserts a new line containing the specified string into a
  3876.                buffer. If 'buffer' is null or not specified, then the
  3877.                current buffer is assumed.
  3878.  
  3879.                If 'row' is specified, the new line is inserted before
  3880.                the specified row, otherwise the new line is inserted
  3881.                before the line at the cursor. If 'col' is specified, the
  3882.                string is placed at the specified column, otherwise the
  3883.                string is placed at column 1.
  3884.  
  3885.   returns:     TRUE if successful, otherwise null.
  3886.   see also:    addline, delline, insline, joinline, splitline
  3887.  
  3888.   example:     insabove
  3889.                  // inserts a new line above the line at the cursor
  3890.                  //   in the current buffer
  3891.                insabove "New line" 1 6
  3892.                  // inserts a new line with the text "  New line"
  3893.                  //   above line 6 in the current buffer
  3894.                insabove "New line" 1 1 "abc"
  3895.                  // inserts a new line with the text "New line"
  3896.                  //   above line 1 in the buffer "abc"
  3897.  
  3898.  
  3899.   insert?      buffer
  3900.   ──────────────────────────────────────────────────────────────────────
  3901.   remarks:     Tests if the cursor is in insert or overstrike mode. If
  3902.                'buffer' is null or not specified, the current buffer is
  3903.                assumed.
  3904.   returns:     TRUE if the cursor is in insert mode, otherwise null.
  3905.   see also:    setcursor, writetext
  3906.  
  3907.  
  3908.   insertbuf    filespec buffer delim/binlen opt=[bdfhkx] trunc comment
  3909.                linenumber
  3910.   ──────────────────────────────────────────────────────────────────────
  3911.   remarks:     Inserts a file or directory into an existing buffer. If
  3912.                'buffer' is null or not specified, the current buffer is
  3913.                assumed.
  3914.  
  3915.                The file is inserted after the line 'linenumber'. If
  3916.                'linenumber' is not specified, then the file is loaded
  3917.                after the current cursor position in the buffer.
  3918.  
  3919.                All other arguments and options are identical to the
  3920.                'loadbuf' function (see the 'loadbuf' function).
  3921.  
  3922.   returns:     The bufferid if successful, otherwise null.
  3923.  
  3924.   see also:    asciibuf, createbbuf, createbuf, destroybuf, getloadinfo,
  3925.                loadbuf, menu
  3926.  
  3927.   example:     insertbuf "c:\\file.txt"
  3928.                  // loads "c:\file.txt" into the current buffer after
  3929.                  //   the current line in the buffer
  3930.                insertbuf "c:\\file.txt" "abc" 32 'b' '' '' 1000
  3931.                  // loads "c:\file.txt" with a binary line length
  3932.                  //   of 32, and inserts it after line 1000 of the
  3933.                  //   buffer "abc"
  3934.  
  3935.  
  3936.   insline      string col row buffer
  3937.   ──────────────────────────────────────────────────────────────────────
  3938.   remarks:     Inserts a new line containing the specified string into a
  3939.                buffer. If 'buffer' is null or not specified, then the
  3940.                current buffer is assumed.
  3941.  
  3942.                If 'row' is specified, the new line is inserted after the
  3943.                specified row, otherwise the new line is inserted after
  3944.                the line at the cursor. If 'col' is specified, the string
  3945.                is placed at the specified column, otherwise the string
  3946.                is placed at column 1.
  3947.  
  3948.   returns:     TRUE if successful, otherwise null.
  3949.   see also:    addline, delline, insabove, joinline, splitline
  3950.  
  3951.   example:     insline
  3952.                  // inserts a new line after the line at the cursor
  3953.                  //   in the current buffer
  3954.                insline "New line" 1 (getlines)
  3955.                  // inserts a new line with the text "New line"
  3956.                  //   after the last line in the current buffer
  3957.                insline "New line" 1 1 "abc"
  3958.                  // inserts a new line with the text "New line"
  3959.                  //   after line 1 in the buffer "abc"
  3960.  
  3961.  
  3962.   instext      string col row buffer
  3963.   ──────────────────────────────────────────────────────────────────────
  3964.   remarks:     Inserts the specified string into a buffer at the
  3965.                specified row and column. If 'buffer' is null or not
  3966.                specified, the current buffer is assumed. If 'col' and
  3967.                'row' are not specified, then the string is inserted at
  3968.                the current cursor position.
  3969.  
  3970.   returns:     TRUE if successful, otherwise null.
  3971.   see also:    delchar, ovltext
  3972.  
  3973.   example:     instext "some text"
  3974.                  // inserts 'some text' at the cursor in the current
  3975.                  //   buffer
  3976.                instext "some text" 2 20
  3977.                  // inserts 'some text' at column 2, line 20 in the
  3978.                  //   current buffer
  3979.                instext "some text" 1 1 "abc"
  3980.                  // inserts 'some text' at column 1, line 1 in the
  3981.                  //   buffer 'abc'
  3982.  
  3983.  
  3984.   international  dateformat dateseparator timeformat timeseparator
  3985.                  thousandsseparator
  3986.   ──────────────────────────────────────────────────────────────────────
  3987.   remarks:     Defines international system settings. The following
  3988.                settings can be specified:
  3989.  
  3990.                dateformat         - The date format to use [0-2]:
  3991.                                       0 = mmddyy
  3992.                                       1 = ddmmyy
  3993.                                       2 = yymmdd
  3994.  
  3995.                dateseparator      - The character used to separate
  3996.                                     days, months, and years
  3997.  
  3998.                timeformat         - The time format to use [0-3]:
  3999.                                       0 = 12hr
  4000.                                       1 = 24hr
  4001.                                       2 = 12hr with seconds
  4002.                                       3 = 24hr with seconds
  4003.  
  4004.                timeseparator      - The character used to separate
  4005.                                     hours, minutes, and seconds
  4006.  
  4007.                thousandsseparator - The character used to separate
  4008.                                     thousands-groups in large numbers
  4009.  
  4010.   returns:     nothing
  4011.   see also:    getdate, gettime, thousands
  4012.  
  4013.  
  4014.   joinline     col row buffer
  4015.   ──────────────────────────────────────────────────────────────────────
  4016.   remarks:     Joins two lines into one line in a buffer. If 'buffer' is
  4017.                null or not specified, then the current buffer is
  4018.                assumed.
  4019.  
  4020.                'row' specifies the first of two lines to be joined, and
  4021.                'col' specifies the column in the first line where the
  4022.                second line is to be appended. If 'col' is less than or
  4023.                equal to the length of the first line, then the second
  4024.                line is appended to the end of the first line.
  4025.  
  4026.                If 'row' and 'col' are not specified, the current cursor
  4027.                position is assumed.
  4028.  
  4029.   returns:     TRUE if successful, otherwise null.
  4030.   see also:    delline, insabove, insline, splitline
  4031.  
  4032.   example:     joinline
  4033.                  // joins the line below the cursor to the current line
  4034.                  //   at the cursor position in the current buffer
  4035.                joinline 1
  4036.                  // appends the line below the cursor to the current line
  4037.                  //   in the current buffer
  4038.  
  4039.  
  4040.   joinstr      delimit+quote string1 string2 ...
  4041.   ──────────────────────────────────────────────────────────────────────
  4042.   remarks:     This function joins any number of strings together into
  4043.                an editor 'multistring'. This differs from normal string
  4044.                concatenation in the following ways:
  4045.  
  4046.                - The delimiter character 'delimit' is inserted between
  4047.                  the component strings.
  4048.  
  4049.                - The character 'quote' is inserted before any
  4050.                  occurrences of the 'delimit' character or the 'quote'
  4051.                  character in the resulting string.
  4052.  
  4053.                If the 'delimit' or 'quote' character are not specified,
  4054.                then the default delimiter character is a slash (/) and
  4055.                the default quote character is a backquote (`).
  4056.  
  4057.   returns:     a multistring
  4058.   see also:    splitstr
  4059.  
  4060.   example:     joinstr '' "abc" "def" "xyz"   // returns "abc/def/xyz"
  4061.                joinstr '' "abc" "d/ef" "xyz"  // returns "abc/d`/ef/xyz"
  4062.                joinstr "|\\" "abc" "x|yz"     // returns "abc|x\|yz"
  4063.  
  4064.  
  4065.   justblock    opt=[clr] mark leftmarg rightmarg
  4066.   ──────────────────────────────────────────────────────────────────────
  4067.   remarks:     Left justifies, right justifies, or centers marked text.
  4068.                If 'mark' is not specified, the default markid is
  4069.                assumed.
  4070.  
  4071.                For column marks, the text is justified to fit between
  4072.                the left and right edges of the mark. For all other
  4073.                marks, the text is justified to fit between 'leftmarg'
  4074.                and 'rightmarg'.
  4075.  
  4076.                One of the following options may be specified:
  4077.  
  4078.                  c - center the text
  4079.                  l - left justify the text
  4080.                  r - right justify the text
  4081.  
  4082.                If no options are specified, then 'l' is assumed.
  4083.  
  4084.   returns:     TRUE if successful, otherwise null.
  4085.   see also:    formatblock
  4086.  
  4087.  
  4088.   keyhit? 
  4089.   ──────────────────────────────────────────────────────────────────────
  4090.   remarks:     Test if non-shift key has been pressed.
  4091.   returns:     TRUE if a key has been pressed and not processed,
  4092.                otherwise null.
  4093.   see also:    event?, shiftkey?
  4094.  
  4095.  
  4096.   lastpos      buffer
  4097.   ──────────────────────────────────────────────────────────────────────
  4098.   remarks:     Moves the cursor to the last cursor position. If 'buffer'
  4099.                is null or not specified, the current buffer is assumed.
  4100.   returns:     TRUE if successful, otherwise null.
  4101.   see also:    gotopos
  4102.  
  4103.  
  4104.   left         cols buffer
  4105.   ──────────────────────────────────────────────────────────────────────
  4106.   remarks:     Moves the cursor to the left. 'cols' specifies the number
  4107.                of columns to move. If 'cols' is not specified, 1 is
  4108.                assumed. If 'buffer' is null or not specified, the
  4109.                current buffer is assumed.
  4110.  
  4111.   returns:     TRUE if successful, otherwise null.
  4112.   see also:    down, right, up
  4113.  
  4114.   example:     left       // moves the cursor left 1 column
  4115.                left 5     // moves the cursor left 5 columns
  4116.  
  4117.  
  4118.   lineflag     opt=[m-] row buffer
  4119.   ──────────────────────────────────────────────────────────────────────
  4120.   remarks:     Turns line flags ON or OFF. If 'buffer' is null or not
  4121.                specified, the current buffer is assumed. If 'row' is not
  4122.                specified, the line at the cursor is assumed. The
  4123.                following flags can be specified:
  4124.  
  4125.                  m - line 'dirty' or modified flag
  4126.                  - - turns off flags
  4127.  
  4128.                If option '-' is specified, any other specified flags
  4129.                will be turned off, otherwise all specified flags will be
  4130.                turned on.
  4131.  
  4132.   returns:     nothing
  4133.   see also:    bufferflag, bufferflag?, lineflag?
  4134.  
  4135.   example:     lineflag "-m"
  4136.                  // turns off the modified flag for the current buffer
  4137.  
  4138.  
  4139.   lineflag?    opt=[m] row buffer
  4140.   ──────────────────────────────────────────────────────────────────────
  4141.   remarks:     Tests if line flags are ON. If 'buffer' is null or not
  4142.                specified, the current buffer is assumed. If 'row' is not
  4143.                specified, the line at the cursor is assumed. The
  4144.                following flags can be specified:
  4145.  
  4146.                  m - line 'dirty' or modified flag
  4147.  
  4148.   returns:     non-zero if any of the specified line flags are ON,
  4149.                otherwise null.
  4150.   see also:    bufferflag, bufferflag?, lineflag
  4151.  
  4152.  
  4153.   loadbuf      filespec buffer delim/binlen opt=[bdhkx1] trunc comment
  4154.   ──────────────────────────────────────────────────────────────────────
  4155.   remarks:     Loads the specified file or directory into a new buffer.
  4156.                If 'buffer' is null or not specified, a unique bufferid
  4157.                will be assigned. The new buffer will become the current
  4158.                buffer.
  4159.  
  4160.                The buffer name of the new buffer will automatically be
  4161.                set to 'filespec'. The 'setbufname' function is generally
  4162.                not required (see 'setbufname').
  4163.  
  4164.                The following options may be specified:
  4165.  
  4166.                  b - loads the file in binary mode. The third argument
  4167.                      specifies the binary line length.
  4168.                  d - includes subdirectories when loading directories
  4169.                  h - includes hidden/system files when loading
  4170.                      directories
  4171.                  k - shows file sizes in 1k increments when loading
  4172.                      directories
  4173.                  x - disables conversion of fold comments to folds
  4174.                  1 - sorts subdirectories first when loading directories
  4175.  
  4176.                If option 'b' is specified, the file is loaded in binary
  4177.                mode and the third argument specifies a fixed binary line
  4178.                length. If the third argument is not specified, the
  4179.                default binary line length is 64.
  4180.  
  4181.                If option 'b' is not specified, the third argument
  4182.                specifies a 1 or 2 byte line delimiter string to use. If
  4183.                the third argument is not specified, a line delimiter of
  4184.                0D0Ah (CR/LF) is assumed.
  4185.  
  4186.                The argument 'trunc' specifies the length at which lines
  4187.                are truncated. If 'trunc' is zero or not specified, the
  4188.                editor maximum (16000) is assumed.
  4189.  
  4190.                The argument 'comment' specifies the fold comment string
  4191.                to look for when converting fold comments to text folds
  4192.                during the loading process. Specifying option 'x'
  4193.                disables the conversion.
  4194.  
  4195.                Note: this function will not display the new buffer in a
  4196.                window. The 'openbuf' or 'popup' library functions should
  4197.                be used to display the buffer.
  4198.  
  4199.   returns:     The new bufferid if successful, otherwise null.
  4200.  
  4201.   see also:    asciibuf, createbbuf, createbuf, destroybuf, getloadinfo,
  4202.                insertbuf, menu, popup, setbufname
  4203.  
  4204.   example:     loadbuf "c:\\file.txt"
  4205.                  // loads 'c:\file.txt' into a new buffer (using line
  4206.                  //   delimiter CR/LF) and returns a unique bufferid
  4207.                loadbuf "c:\\file.txt" "abc"
  4208.                  // loads 'c:\file.txt' into a new buffer with the
  4209.                  //   bufferid 'abc'
  4210.                loadbuf "c:\\file.txt" '' (hex2bin "0A")
  4211.                  // loads 'c:\file.txt' into a new buffer using line
  4212.                  //   delimiter '0A' (LF) and returns a unique bufferid
  4213.                loadbuf "c:\\file.txt" '' 25 'b'
  4214.                  // loads 'c:\file.txt' into a new binary buffer with
  4215.                  //   a fixed line length of 25 and returns a unique
  4216.                  //   bufferid
  4217.  
  4218.  
  4219.   locase       string
  4220.   ──────────────────────────────────────────────────────────────────────
  4221.   remarks:     Converts a string to lowercase.
  4222.   returns:     the string in lowercase.
  4223.   see also:    upcase  flipcase
  4224.   example:     locase "PEACHES"           // returns "peaches"
  4225.  
  4226.  
  4227.   locatefile   filename path opt=[d]
  4228.   ──────────────────────────────────────────────────────────────────────
  4229.   remarks:     Searches a path for a filename. 'path' can be a sequence
  4230.                of paths separated by semicolons (;) (as specified in the
  4231.                DOS 'PATH' environment string).
  4232.  
  4233.                If option 'd' is specified, then 'filename' must be a
  4234.                directory and the path is searched for directories only.
  4235.  
  4236.                This function returns the fully qualified filename or
  4237.                directory if found, otherwise it returns null.
  4238.  
  4239.   returns:     TRUE if successful, otherwise null.
  4240.   see also:    createdir, scanfile
  4241.  
  4242.   example:     locatefile "FILE.TXT" "C:\\"
  4243.                  // returns C:\FILE.TXT, if FILE.TXT is found in C:\
  4244.                locatefile "FILE.TXT" (getenv "PATH")
  4245.                  // returns FILE.TXT (fully qualified), if FILE.TXT is
  4246.                  //   found in the DOS PATH
  4247.                locatefile "MACROS" "D:\\AURORA" 'd'
  4248.                  // returns D:\MACROS\AURORA, if MACROS is a directory
  4249.                  //   in D:\AURORA
  4250.  
  4251.  
  4252.   lookup       varexpression objexpression opt=[e]
  4253.   ──────────────────────────────────────────────────────────────────────
  4254.   remarks:     Gets the value of an object variable defined by
  4255.                'varexpression' in the object defined by 'objexpression'.
  4256.                If 'objexpression' is not specified, the current object
  4257.                is assumed. If option 'e' is specified, then this
  4258.                function only tests for the existence of the object
  4259.                variable.
  4260.  
  4261.   returns:     If option 'e' is not specified, this function returns the
  4262.                value of an object variable. If option 'e' is specified,
  4263.                this function returns non-zero if the object variable
  4264.                exists, otherwise it returns null.
  4265.  
  4266.   see also:    function?, set, setobj, setx, setxfun, setxobj, unsetx
  4267.  
  4268.   example:     lookup "VidCols"
  4269.                lookup "Vid" + "Cols" "prf"
  4270.  
  4271.                lookup variable
  4272.                  // returns the value of an object variable whose
  4273.                  //   name is the value of 'variable'
  4274.  
  4275.  
  4276.   mark?        mark
  4277.   ──────────────────────────────────────────────────────────────────────
  4278.   remarks:     Tests if a mark exists. If 'mark' is not specified, then
  4279.                the default markid is assumed.
  4280.   returns:     TRUE if the mark exists, otherwise null.
  4281.   see also:    inmark?
  4282.  
  4283.  
  4284.   markchar     startcol endcol toprow botrow mark buffer
  4285.   ──────────────────────────────────────────────────────────────────────
  4286.   remarks:     Creates, extends, or modifies a character mark. A
  4287.                character mark designates a stream of one or more
  4288.                characters in a buffer. If 'buffer' is null or not
  4289.                specified, the current buffer is assumed. If 'mark' is
  4290.                not specified, the default markid is assumed.
  4291.  
  4292.                If the mark does not exist then a new mark is created. If
  4293.                the mark already exists and is not located in the
  4294.                specified buffer, then it is moved there.
  4295.  
  4296.                The mark will be sized to span from 'startcol','toprow'
  4297.                to 'endcol','botrow'. If none of these are specified,
  4298.                then the cursor line and column are assumed and the mark
  4299.                is left 'open' (moving the cursor resizes the mark). If
  4300.                the mark was already open, then it is closed.
  4301.  
  4302.   returns:     The markid of the new mark if created, otherwise null.
  4303.  
  4304.   see also:    destroymark, extendmark, markcolumn, markline,
  4305.                markstream, stopmark
  4306.  
  4307.   example:     markchar
  4308.                  // marks the character at the cursor using the default
  4309.                  //   markid and leaves the mark 'open'.
  4310.  
  4311.  
  4312.   markcolumn   leftcol rightcol toprow botrow mark buffer
  4313.   ──────────────────────────────────────────────────────────────────────
  4314.   remarks:     Creates, extends, or modifies a rectangular column mark.
  4315.                If 'buffer' is null or not specified, then the current
  4316.                buffer is assumed. If 'mark' is not specified, the
  4317.                default markid is assumed.
  4318.  
  4319.                If the mark does not exist then a new mark is created. If
  4320.                the mark already exists and is not located in the
  4321.                specified buffer, then it is moved there.
  4322.  
  4323.                The mark will be sized to span from 'leftcol','toprow' to
  4324.                'rightcol','botrow'. If none of these are specified, then
  4325.                the cursor line and column are assumed and the mark is
  4326.                left 'open' (moving the cursor resizes the mark). If the
  4327.                mark was already open, then it is closed.
  4328.  
  4329.   returns:     The markid of the new mark if created, otherwise null.
  4330.  
  4331.   see also:    destroymark, extendmark, markchar, markline, markstream,
  4332.                stopmark
  4333.  
  4334.   example:     markcolumn
  4335.                  // marks the character at the cursor using the default
  4336.                  //   markid and leaves the mark 'open'.
  4337.                markcolumn 1 1 1 (getlines)
  4338.                  // marks the first column of the entire buffer using
  4339.                  // the default markid
  4340.  
  4341.  
  4342.   markline     toprow botrow mark buffer
  4343.   ──────────────────────────────────────────────────────────────────────
  4344.   remarks:     Creates, extends, or modifies a line mark. If 'buffer' is
  4345.                null or not specified, then the current buffer is
  4346.                assumed. If 'mark' is not specified, the default markid
  4347.                is assumed.
  4348.  
  4349.                If the mark does not exist then a new mark is created. If
  4350.                the mark already exists and is not located in the
  4351.                specified buffer, then it is moved there.
  4352.  
  4353.                The mark will be sized to span from 'toprow' to 'botrow'.
  4354.                If 'toprow' and 'botrow' are not specified, then the line
  4355.                at the cursor is assumed and the mark is left 'open'
  4356.                (moving the cursor resizes the mark). If the mark was
  4357.                already open, then it is closed.
  4358.  
  4359.   returns:     The markid of the new mark if created, otherwise null.
  4360.  
  4361.   see also:    destroymark, extendmark, markchar, markcolumn,
  4362.                markstream, stopmark
  4363.  
  4364.   example:     markline
  4365.                  // marks the current line in the current buffer using
  4366.                  //   the default markid, and leaves the mark 'open'
  4367.                markline 1 (getlines)
  4368.                  // marks the entire buffer using the default markid
  4369.                markline '' '' 'T'
  4370.                  // marks the current line using the markid 'T'
  4371.  
  4372.  
  4373.   markstream   startcol endcol toprow botrow mark buffer
  4374.   ──────────────────────────────────────────────────────────────────────
  4375.   remarks:     Creates, extends, or modifies a stream mark. A stream
  4376.                mark designates a stream of zero or more characters in a
  4377.                buffer and does not include 'endcol' on the row 'botrow'.
  4378.                If 'buffer' is null or not specified, then the current
  4379.                buffer is assumed. If 'mark' is not specified, the
  4380.                default markid is assumed.
  4381.  
  4382.                If the mark does not exist then a new mark is created. If
  4383.                the mark already exists and is not located in the
  4384.                specified buffer, then it is moved there.
  4385.  
  4386.                The mark will be sized to span from 'startcol','toprow'
  4387.                to 'endcol','botrow'. If none of these are specified,
  4388.                then the cursor line and column are assumed and the mark
  4389.                is left 'open' (moving the cursor resizes the mark). If
  4390.                the mark was already open, then it is closed.
  4391.  
  4392.   returns:     The markid of the new mark if created, otherwise null.
  4393.  
  4394.   see also:    destroymark, extendmark, markchar, markcolumn, markline,
  4395.                stopmark
  4396.  
  4397.   example:     markstream
  4398.                  // opens a stream mark at the cursor position with the
  4399.                  //   default markid. Characters will not be marked
  4400.                  //   until the cursor is moved.
  4401.  
  4402.  
  4403.   max?         window                                           [Lib][a]
  4404.   ──────────────────────────────────────────────────────────────────────
  4405.   remarks:     Tests if a window is maximized. If 'window' is not
  4406.                specified, the current window is assumed.
  4407.   returns:     TRUE if the window is maximized, otherwise null.
  4408.   see also:    min?
  4409.  
  4410.  
  4411.   maxems       size
  4412.   ──────────────────────────────────────────────────────────────────────
  4413.   remarks:     Specifies the maximum amount of EMS memory the editor may
  4414.                use, in 1K increments. If -1 is specified, the maximum
  4415.                available EMS will be used. All available XMS memory will
  4416.                be used before EMS memory is used.
  4417.  
  4418.                Note: this function may only be called once during an
  4419.                edit session. An EMS driver must be installed before EMS
  4420.                memory can be used.
  4421.  
  4422.   returns:     Non-zero if successful, otherwise zero.
  4423.   see also:    maxxms, memoptions, swapfiles
  4424.  
  4425.  
  4426.   maximize     window                                           [Lib][a]
  4427.   ──────────────────────────────────────────────────────────────────────
  4428.   remarks:     Maximizes the specified window. If 'window' is not
  4429.                specified, the current window is assumed.
  4430.   returns:     nothing
  4431.   see also:    max?, min?, minimize, restore
  4432.  
  4433.  
  4434.   maxxms       size-in-K
  4435.   ──────────────────────────────────────────────────────────────────────
  4436.   remarks:     Specifies the maximum amount of XMS memory the editor may
  4437.                use, in 1K increments. If -1 is specified, the maximum
  4438.                available XMS will be used.
  4439.  
  4440.                Note: this function may only be called once during an
  4441.                edit session. An XMS driver must be installed before XMS
  4442.                memory can be used.
  4443.  
  4444.   returns:     Non-zero if successful, otherwise zero.
  4445.   see also:    maxems, memoptions, swapfiles
  4446.  
  4447.  
  4448.   memoptions   opt=[o]
  4449.   ──────────────────────────────────────────────────────────────────────
  4450.   remarks:     Specifies memory usage options. The following options may
  4451.                be specified:
  4452.  
  4453.                  o - allows large files to left open after loading (this
  4454.                      can increase performance when loading large files).
  4455.  
  4456.   returns:     nothing
  4457.   see also:    maxems, maxxms, swapfiles
  4458.  
  4459.  
  4460.   min?         window                                           [Lib][a]
  4461.   ──────────────────────────────────────────────────────────────────────
  4462.   remarks:     Tests if a window is minimized. If 'window' is not
  4463.                specified, the current window is assumed.
  4464.   returns:     TRUE if the window is minimized, otherwise null.
  4465.   see also:    max?
  4466.  
  4467.  
  4468.   minimize     window                                           [Lib][a]
  4469.   ──────────────────────────────────────────────────────────────────────
  4470.   remarks:     Minimizes the specified window. If 'window' is not
  4471.                specified, the current window is assumed.
  4472.   returns:     nothing
  4473.   see also:    max?, maximize, min?, restore
  4474.  
  4475.  
  4476.   mono? 
  4477.   ──────────────────────────────────────────────────────────────────────
  4478.   remarks:     Tests if the editor is operating in monochrome mode.
  4479.   returns:     TRUE if the editor is in monochrome mode, otherwise null.
  4480.  
  4481.  
  4482.   mousepos     virtualX virtualY
  4483.   ──────────────────────────────────────────────────────────────────────
  4484.   remarks:     Moves the mouse pointer to the specified virtual X and
  4485.                virtual Y coordinates on the screen.
  4486.  
  4487.   returns:     nothing
  4488.   see also:    getmousex, getmousey, openmouse
  4489.  
  4490.   example:     mousepos 16000 16000
  4491.                  // moves the mouse pointer to the upper left
  4492.                  //   of the virtual screen at startup
  4493.                mousepos  15999 + getvidcols  15999 + getvidrows
  4494.                  // moves the mouse pointer to the lower right
  4495.                  //   of the virtual screen at startup
  4496.  
  4497.  
  4498.   mousesense   horz vert doublespeed
  4499.   ──────────────────────────────────────────────────────────────────────
  4500.   remarks:     Changes the mouse sensitivity by setting the horizontal
  4501.                mickey-to-pixel and vertical mickey-to-pixel ratios, and
  4502.                by setting the double speed threshold. The default mouse
  4503.                sensitivity after calling 'openmouse' are:
  4504.  
  4505.                Horz mickey-to-pixel ratio:   8
  4506.                Vert mickey-to-pixel ratio:  16
  4507.                Double speed threshold:      64
  4508.  
  4509.                Lower numbers for these parameters result in increased
  4510.                sensitivity.
  4511.  
  4512.   returns:     nothing
  4513.   see also:    openmouse
  4514.  
  4515.   example:     mousesense 5 12 50             // more sensitive mouse
  4516.  
  4517.  
  4518.   moveblock    mark buffer col row
  4519.   ──────────────────────────────────────────────────────────────────────
  4520.   remarks:     Moves marked text after the specified column and row
  4521.                position in the specified buffer. The text is inserted at
  4522.                the new position and the mark is moved to the new
  4523.                position.
  4524.  
  4525.                If 'mark' is not specified, the default markid is
  4526.                assumed. If 'buffer' is null or not specified, the
  4527.                current buffer is assumed. If 'col' and 'row' are not
  4528.                specified, the current cursor position is assumed.
  4529.  
  4530.   returns:     TRUE if successful, otherwise null.
  4531.   see also:    copyblock, copyblockover
  4532.  
  4533.  
  4534.   movepos      (+/-)cols (+/-)rows buffer
  4535.   ──────────────────────────────────────────────────────────────────────
  4536.   remarks:     Moves the cursor a relative number of columns and rows
  4537.                away from the current position. If 'buffer' is null or
  4538.                not specified, the current buffer is assumed.
  4539.  
  4540.   returns:     TRUE if successful, otherwise null.
  4541.   see also:    col, down, gotopos, left, right, row, up
  4542.  
  4543.   example:     movepos 2 3
  4544.                   // moves the cursor right 2 columns and down 3 rows
  4545.  
  4546.  
  4547.   movewindow   x y opt=[acdrswz1] window relativewindow
  4548.   ──────────────────────────────────────────────────────────────────────
  4549.   remarks:     Changes the position of a window. If 'window' is not
  4550.                specified, the current window is assumed. 'x' and 'y'
  4551.                specify the new window coordinates. See the 'sizewindow'
  4552.                function for a description of the coordinates and
  4553.                available options.
  4554.  
  4555.                This call is nearly identical to the 'sizewindow'
  4556.                function, except that only the position of the window can
  4557.                be changed.
  4558.  
  4559.   returns:     TRUE if successful, otherwise null.
  4560.   see also:    getcoord, sizewindow
  4561.  
  4562.  
  4563.   msgbox       message title opt=[b]                            [Lib][a]
  4564.   ──────────────────────────────────────────────────────────────────────
  4565.   remarks:     Displays the specified message in a popup window with an
  4566.                'Ok' button. If a title is not specified, 'Message' is
  4567.                assumed. If option 'b' is specified, the PC speaker
  4568.                beeps.
  4569.  
  4570.   returns:     nothing
  4571.   see also:    okbox, say, shortbox, yncbox
  4572.  
  4573.   example:     msgbox "Hello World"
  4574.  
  4575.  
  4576.   nextfile                                                   [Lib][edit]
  4577.   ──────────────────────────────────────────────────────────────────────
  4578.   remarks:     Makes the next buffer in the buffer list the current
  4579.                buffer, and displays it in the current edit window. The
  4580.                buffer previously displayed in the edit window will not
  4581.                be destroyed.
  4582.   returns:     nothing
  4583.   see also:    filelist, prevfile
  4584.  
  4585.  
  4586.   nexthist                                                 [Lib][prompt]
  4587.   ──────────────────────────────────────────────────────────────────────
  4588.   remarks:     Displays the next history string in a prompt. This
  4589.                function is only for use within prompts.
  4590.   returns:     nothing
  4591.   see also:    gethistname, prevhist
  4592.  
  4593.  
  4594.   nextwindow                                                  [Lib][win]
  4595.   ──────────────────────────────────────────────────────────────────────
  4596.   remarks:     Switches the focus to the next window on the screen.
  4597.   returns:     nothing
  4598.   see also:    prevwindow
  4599.  
  4600.  
  4601.   object?      object
  4602.   ──────────────────────────────────────────────────────────────────────
  4603.   remarks:     Tests if an object exists. If 'object' is not specified,
  4604.                then the current object is assumed.
  4605.   returns:     TRUE if the object exists, otherwise null.
  4606.   see also:    destroyobject, object, objtype?
  4607.  
  4608.  
  4609.   objtype?     parentobj object
  4610.   ──────────────────────────────────────────────────────────────────────
  4611.   remarks:     Tests if the object 'parentobj' is located in the
  4612.                inheritance path of the specified object. If 'object' is
  4613.                not specified, the current object is assumed.
  4614.   returns:     TRUE if 'parentobj' is a parent object of 'object',
  4615.                otherwise null.
  4616.   see also:    object, object?, wintype?
  4617.  
  4618.  
  4619.   okbox        message title                                    [Lib][a]
  4620.   ──────────────────────────────────────────────────────────────────────
  4621.   remarks:     Displays the specified message in a popup window with
  4622.                'Ok' and 'Cancel' buttons. If a title is not specified,
  4623.                'Message' is assumed.
  4624.  
  4625.   returns:     The name of the button pressed (Ok or Cancel), or null if
  4626.                no button was pressed.
  4627.   see also:    msgbox, say, shortbox, yncbox
  4628.  
  4629.   example:     if (okbox "Delete the file?" "Delete") == 'Ok' then 
  4630.                  .
  4631.                  .
  4632.                end 
  4633.  
  4634.  
  4635.   onalarm                                                          [Lib]
  4636.   ──────────────────────────────────────────────────────────────────────
  4637.   remarks:     This user-defined function is called by the editor
  4638.                library code (LIB.X) when sounding the PC speaker to call
  4639.                attention to a message. This function can be used to
  4640.                customize the alarm sound. 'onalarm' is called directly
  4641.                in the current event object and is not passed any
  4642.                parameters.
  4643.  
  4644.   returns:     none required
  4645.  
  4646.   example:     function  onalarm
  4647.                  // customized alarm sound
  4648.                  beep 950 30
  4649.                  beep 750 30
  4650.                end 
  4651.  
  4652.  
  4653.   onclose                                                          [Lib]
  4654.   ──────────────────────────────────────────────────────────────────────
  4655.   remarks:     This user-defined function is called by the editor
  4656.                library code (LIB.X) when a file or file manager window
  4657.                is closed and removed from memory.
  4658.  
  4659.                'onclose' is called directly in the current event object
  4660.                and is not passed any parameters.
  4661.  
  4662.   returns:     none required
  4663.   see also:    onfocus, onopen, onsave
  4664.   example:     see the configuration file EXT.AML
  4665.  
  4666.  
  4667.   oncomment    filename comment1 comment2                       [Lib][a]
  4668.   ──────────────────────────────────────────────────────────────────────
  4669.   remarks:     This user-defined function is called by the editor
  4670.                library (LIB.X) and extension code (EXT.AML) to return
  4671.                the language comments associated with a filename.
  4672.  
  4673.                'oncomment' is called directly in the current event
  4674.                object and is passed the filename as the first argument.
  4675.                'comment1' and 'comment2' are passed by reference and
  4676.                should be modified within 'oncomment' to return comment
  4677.                symbols.
  4678.  
  4679.   returns:     comment1 and comment2 (by reference)
  4680.   example:     see EXT.AML.
  4681.  
  4682.  
  4683.   oncompiling  filename linenumber
  4684.   ──────────────────────────────────────────────────────────────────────
  4685.   remarks:     This user-defined function is called by the editor
  4686.                (A.EXE) while a macro language source file is being
  4687.                compiled, and can be used to show progress during macro
  4688.                compilation.
  4689.  
  4690.                'oncompiling' is called directly in the current event
  4691.                object and is passed the name of the file being compiled
  4692.                and the line number of the last line compiled. After the
  4693.                file is compiled, 'oncompiling' is called again with no
  4694.                arguments.
  4695.  
  4696.   returns:     none required
  4697.   see also:    onloading, onprinting, onsaving
  4698.   example:     see the configuration file EXT.AML
  4699.  
  4700.  
  4701.   onentry      dosarg1 dosarg2 ...                                 [Lib]
  4702.   ──────────────────────────────────────────────────────────────────────
  4703.   remarks:     This user-defined function is called by the editor
  4704.                library code (LIB.X) after the default macro file A.X is
  4705.                loaded and executed.
  4706.  
  4707.                This function is typically used to perform a variety of
  4708.                editor initialization tasks, load DOS command line
  4709.                files, and process user-defined command line options.
  4710.  
  4711.                'onentry' is queued for execution (not called directly),
  4712.                and executes in the current event object. Any arguments
  4713.                passed to A.EXE on the DOS command line are also passed
  4714.                to 'onentry'.
  4715.  
  4716.   returns:     none required
  4717.   see also:    onexit
  4718.   example:     see the configuration file EXT.AML
  4719.  
  4720.  
  4721.   onexit                                                           [Lib]
  4722.   ──────────────────────────────────────────────────────────────────────
  4723.   remarks:     This user-defined function is called by the editor
  4724.                library code (LIB.X) when an edit session is ended and
  4725.                control is returned to DOS. This function is typically
  4726.                used to perform a variety of final-exit cleanup tasks.
  4727.  
  4728.                'onexit' is called directly in the current event object
  4729.                and is not passed any parameters.
  4730.  
  4731.   returns:     none required
  4732.   see also:    onentry
  4733.   example:     see the configuration file EXT.AML
  4734.  
  4735.  
  4736.   onfocus                                                          [Lib]
  4737.   ──────────────────────────────────────────────────────────────────────
  4738.   remarks:     This user-defined function is called by the editor
  4739.                library code (LIB.X) after the focus is switched to
  4740.                another file or file manager window. 'onfocus' is called
  4741.                directly in the current event object and is not passed
  4742.                any parameters.
  4743.   returns:     none required
  4744.   see also:    onclose, onopen, onsave
  4745.  
  4746.  
  4747.   onfound      stringlength                                  [Ext][edit]
  4748.   ──────────────────────────────────────────────────────────────────────
  4749.   remarks:     This user-defined function is called by the editor
  4750.                library (LIB.X) and extension code (EXT.AML) when a
  4751.                string is found in the current buffer. Typically, this
  4752.                function is used to change the window view and/or
  4753.                highlight the string found.
  4754.  
  4755.                'onfound' is called directly in the current event object
  4756.                and is passed the length of the string.
  4757.  
  4758.   returns:     none required
  4759.   see also:    onhotkey
  4760.  
  4761.   example:     function  onfound (length)
  4762.                  .
  4763.                  .
  4764.                  // highlights the string found with the color
  4765.                  //   white on magenta
  4766.                  hilite length 1 95
  4767.                end 
  4768.  
  4769.  
  4770.   onhotkey     character                                     [Ext][edit]
  4771.   ──────────────────────────────────────────────────────────────────────
  4772.   remarks:     This user-defined function is called by the editor
  4773.                library (LIB.X) and extension code (EXT.AML) when a when
  4774.                a hotkey is entered from the file manager or a file
  4775.                picklist. Typically, this function is used to jump to a
  4776.                file beginning with the hotkey character
  4777.  
  4778.                'onhotkey' is called directly in the current event object
  4779.                and is passed the hotkey character.
  4780.  
  4781.   returns:     none required
  4782.   see also:    onfound
  4783.  
  4784.  
  4785.   onloading    linenumber
  4786.   ──────────────────────────────────────────────────────────────────────
  4787.   remarks:     This user-defined function is called by the editor
  4788.                (A.EXE) as a file is being loaded, and can be used to
  4789.                show progress when loading a file.
  4790.  
  4791.                'onloading' is called directly in the current event
  4792.                object and is passed the line number of the last line
  4793.                loaded. After the file is loaded, 'onloading' is called
  4794.                again with no arguments.
  4795.  
  4796.   returns:     none required
  4797.   see also:    oncompiling, onprinting, onsaving
  4798.   example:     see the configuration file EXT.AML
  4799.  
  4800.  
  4801.   onopen       options                                             [Lib]
  4802.   ──────────────────────────────────────────────────────────────────────
  4803.   remarks:     This user-defined function is called by the editor
  4804.                library code (LIB.X) whenever a new file or file manager
  4805.                window is opened. This function is only called once when
  4806.                the file is initially opened, or when the file manager
  4807.                window is initially created (not when switching to other
  4808.                files or windows).
  4809.  
  4810.                This function can be used to perform a variety of
  4811.                initialization tasks on the newly opened file, such as
  4812.                turning on settings based on file extension, altering the
  4813.                position in the file, checking for tab expansion, etc.
  4814.  
  4815.                'onopen' is called directly in the current event object
  4816.                after the file or directory is loaded and before the
  4817.                window is displayed. The open options used to open the
  4818.                window are passed to 'onopen'.
  4819.  
  4820.   returns:     none required
  4821.   see also:    onclose, onfocus, onsave
  4822.  
  4823.  
  4824.   onprinting   linenumber
  4825.   ──────────────────────────────────────────────────────────────────────
  4826.   remarks:     This user-defined function is called by the editor
  4827.                (A.EXE) as a file is being printed, and can be used to
  4828.                show progress when printing a file.
  4829.  
  4830.                'onprinting' is called directly in the current event
  4831.                object and is passed the line number of the last line
  4832.                printed. After the file is printed, 'onprinting' is
  4833.                called again with no arguments.
  4834.  
  4835.   returns:     none required
  4836.   see also:    oncompiling, onloading, onsaving
  4837.   example:     see the configuration file EXT.AML
  4838.  
  4839.  
  4840.   onsave       filename                                      [Ext][edit]
  4841.   ──────────────────────────────────────────────────────────────────────
  4842.   remarks:     This user-defined function is called by the editor
  4843.                extension code (EXT.AML) immediately before a file is
  4844.                saved. 'onsave' is called directly in the current event
  4845.                object. The name of the file being saved is passed to
  4846.                'onsave'.
  4847.   returns:     none required
  4848.   see also:    onclose, onopen
  4849.  
  4850.  
  4851.   onsaving     linenumber
  4852.   ──────────────────────────────────────────────────────────────────────
  4853.   remarks:     This user-defined function is called by the editor
  4854.                (A.EXE) as a file is being saved, and can be used to show
  4855.                progress when saving a file.
  4856.  
  4857.                'onsaving' is called directly in the current event object
  4858.                and is passed the line number of the last line saved.
  4859.                After the file is saved, 'onsaving' is called again with
  4860.                no arguments.
  4861.  
  4862.   returns:     none required
  4863.   see also:    oncompiling, onloading, onprinting
  4864.   example:     see the configuration file EXT.AML
  4865.  
  4866.  
  4867.   onscanning   filename                                            [Lib]
  4868.   ──────────────────────────────────────────────────────────────────────
  4869.   remarks:     This user-defined function is called by the editor
  4870.                library code (LIB.X) as files are being scanned for a
  4871.                string, and can be used to show progress during the scan.
  4872.  
  4873.                'onscanning' is called directly in the current event
  4874.                object before each file is scanned, and is passed the
  4875.                file name as the first argument. If the string is found
  4876.                in the file, 'onscanning' is called again with the same
  4877.                file name as the first argument, and a second argument
  4878.                which is the position (in bytes) in the file where the
  4879.                string was found. After all files are scanning,
  4880.                'onscanning' is called again with no arguments.
  4881.  
  4882.   returns:     none required
  4883.   see also:    scanfiles
  4884.   example:     see the configuration file EXT.AML.
  4885.  
  4886.  
  4887.   onsyntax     filename                                         [Lib][a]
  4888.   ──────────────────────────────────────────────────────────────────────
  4889.   remarks:     This user-defined function is called by the editor
  4890.                library (LIB.X) and extension code (EXT.AML) to return
  4891.                the syntax highlighting object associated with a
  4892.                filename.
  4893.  
  4894.                'onsyntax' is called directly in the current event object
  4895.                and is passed the filename. 'onsyntax' should return the
  4896.                syntax highlighting object associated with the filename.
  4897.  
  4898.   returns:     a syntax highlighting object.
  4899.   example:     see SYNTAX.AML.
  4900.  
  4901.  
  4902.   open         filespec opt=[bcefilhnprvz]                      [Lib][a]
  4903.   ──────────────────────────────────────────────────────────────────────
  4904.   remarks:     Opens the specified file or directory. If a file is
  4905.                specified, then an edit window is opened, otherwise a
  4906.                file manager window is opened. If nothing is specified,
  4907.                then the directory '*.*' is assumed.
  4908.  
  4909.                The following open options may be specified:
  4910.  
  4911.                  b - opens the file in binary mode. The binary line length
  4912.                      can be specified after the option 'b'. For example,
  4913.  
  4914.                        open "file.ext" "b20"
  4915.  
  4916.                      In the example above, a file is opened with a
  4917.                      binary line length of 20. If a binary line length
  4918.                      is not specified, the 'BinaryLength' configuration
  4919.                      variable in CONFIG.AML is assumed.
  4920.  
  4921.                  c - cascades the window with other windows when loading.
  4922.  
  4923.                  e - loads the file into the current edit window. The
  4924.                      previous buffer in the window is not destroyed.
  4925.  
  4926.                  f - opens the window in 'full-screen' mode (maximized,
  4927.                      with all the borders visible).
  4928.  
  4929.                  i - inserts the file at the cursor in the current edit
  4930.                      window. If a directory is specified, then the user
  4931.                      is prompted to select a file.
  4932.  
  4933.                  l - specifies the line in the file where the cursor
  4934.                      should be placed after loading. The line number is
  4935.                      specified after the option 'l'. For example:
  4936.  
  4937.                        open "file.ext" "l541"
  4938.  
  4939.                      In the example above, a file is opened and the
  4940.                      cursor is placed on line 541.
  4941.  
  4942.                  h - tiles the window horizontally with other windows on
  4943.                      the screen when loading.
  4944.  
  4945.                  n - minimizes the window when loading.
  4946.  
  4947.                  p - ignores history (the last window and cursor
  4948.                      position) when loading the file or directory. This
  4949.                      temporarily overrides the 'SavePosition'
  4950.                      configuration setting in CONFIG.AML
  4951.  
  4952.                  r - replaces the file in the current window with the
  4953.                      new file. The previous buffer in the window is
  4954.                      destroyed.
  4955.  
  4956.                  v - tiles the window vertically with other windows
  4957.                      on the screen when loading.
  4958.  
  4959.                  z - maximizes the window when loading.
  4960.  
  4961.   returns:     the bufferid of the file or directory if successful,
  4962.                otherwise null.
  4963.  
  4964.   see also:    close, openbuf, opennew, reopen, save, setname
  4965.  
  4966.   example:     open "C:\\FILE.TXT"
  4967.                  // opens the file C:\FILE.TXT
  4968.                open "C:\\FILE.TXT" "pz"
  4969.                  // opens the file C:\FILE.TXT in a maximized window,
  4970.                  //   ignoring history
  4971.                open "D:\\*.TXT" 'f'
  4972.                  // opens a full-screen file manager window displaying
  4973.                  //   all files with the extension ".TXT" in the root
  4974.                  //   directory of the D drive.
  4975.                open "C:\\FILE.TXT" "el23"
  4976.                  // opens the file C:\FILE.TXT and displays it in the
  4977.                  //   current edit window. The cursor is placed on
  4978.                  //   line 23.
  4979.  
  4980.  
  4981.   openbuf      buffer opt=[ceflhnprvz]                          [Lib][a]
  4982.   ──────────────────────────────────────────────────────────────────────
  4983.   remarks:     Displays an existing buffer in a new edit window. Any
  4984.                open options except 'b' and 'i' may be specified. See the
  4985.                'open' function for a description of open options.
  4986.  
  4987.                This function allows buffers to be created and
  4988.                manipulated within the editor before being displayed in a
  4989.                window.
  4990.  
  4991.                The buffer should previously have been assigned a buffer
  4992.                name (a fully qualified file name). If the buffer was
  4993.                created with the 'loadbuf' function, the buffer name will
  4994.                have automatically been set to the file name where the
  4995.                buffer was loaded, otherwise the 'setbufname' function
  4996.                should be used to assign a buffer name.
  4997.  
  4998.   returns:     nothing
  4999.   see also:    close, createbbuf, createbuf, loadbuf, open, opennew,
  5000.                reopen, save, setname
  5001.  
  5002.   example:     openbuf (loadbuf "C:\\FILE.TXT") 'z'
  5003.                  // load C:\FILE.TXT and display it in a maximized
  5004.                  //   window
  5005.  
  5006.                buffer = createbuf            // create a new buffer
  5007.                if buffer then 
  5008.                  setbufname "C:\\FILE.TXT"   // set the buffer name
  5009.                  openbuf buffer              // display the buffer
  5010.                end 
  5011.  
  5012.  
  5013.   opendesk     filename                                         [Lib][a]
  5014.   ──────────────────────────────────────────────────────────────────────
  5015.   remarks:     Loads a previously saved desktop from the specified
  5016.                filename and makes it the current desktop. The desktop
  5017.                does not become visible until the 'restoredesk' function
  5018.                is called.
  5019.   returns:     Non-zero if successful, otherwise zero
  5020.   see also:    begdesk, currdesk, enddesk, restoredesk, savedesk
  5021.  
  5022.  
  5023.   openf        file opt=[bcefilhnprvz1q]                     [Lib][fmgr]
  5024.   ──────────────────────────────────────────────────────────────────────
  5025.   remarks:     Opens a file with the specified options from the current
  5026.                file manager window. This call is a low level call
  5027.                intended for use within the file manager.
  5028.  
  5029.                See the 'open' function for a description of the
  5030.                available options. In addition to the options supported
  5031.                by the 'open' function, the following options are also
  5032.                supported:
  5033.  
  5034.                  1 - opens only the file or directory on the current
  5035.                      line, even if multiple files are marked.
  5036.                  q - closes the file manager window when loading.
  5037.  
  5038.   returns:     TRUE if successful, otherwise null.
  5039.   see also:    fdomark, open
  5040.  
  5041.  
  5042.   openfile     filename opt=[rwc]
  5043.   ──────────────────────────────────────────────────────────────────────
  5044.   remarks:     Opens the specified file for reading and/or writing. The
  5045.                following options can be specified:
  5046.  
  5047.                  c - create a new file or truncate the file if it
  5048.                      already exists
  5049.                  r - open the file for reading
  5050.                  w - open the file for writing
  5051.  
  5052.                If no options are specified, 'r' is assumed.
  5053.  
  5054.   returns:     A file handle if successful, otherwise -1.
  5055.   see also:    closefile, filepos, readfile, writefile
  5056.  
  5057.  
  5058.   openhistory  filename                                         [Lib][a]
  5059.   ──────────────────────────────────────────────────────────────────────
  5060.   remarks:     Opens the specified history file and replaces all
  5061.                existing history buffers with the history in the file.
  5062.                The current desktop is also replaced with the desktop
  5063.                saved in the history file.
  5064.   returns:     Non-zero if successful, otherwise null.
  5065.   see also:    savehistory
  5066.  
  5067.  
  5068.   openfold     opt=[s] row buffer
  5069.   ──────────────────────────────────────────────────────────────────────
  5070.   remarks:     Opens a closed fold. If 'buffer' is null or not
  5071.                specified, then the current buffer is assumed. If 'row'
  5072.                is not specified, then the line at the cursor is assumed.
  5073.                If option 's' is specified, all closed subfolds within
  5074.                the fold are also opened.
  5075.  
  5076.   returns:     the number of folds opened
  5077.   see also:    closefold, createfold, destroyfold, foldblock, getfold
  5078.  
  5079.   example:     openfold
  5080.                  // opens the closed fold at the current line in the
  5081.                  //   current buffer, leaving any subfolds closed
  5082.  
  5083.  
  5084.   openkey      filename                                         [Lib][a]
  5085.   ──────────────────────────────────────────────────────────────────────
  5086.   remarks:     Opens a key macro file saved with the 'savekey' function.
  5087.                If there is a name conflict with any currently defined
  5088.                key macros, the key macros in the opened file will
  5089.                replace the current key macros.
  5090.   returns:     TRUE if successful, otherwise null.
  5091.   see also:    savekey
  5092.  
  5093.  
  5094.   opennew      filename opt=[ceflhnprvz]                        [Ext][a]
  5095.   ──────────────────────────────────────────────────────────────────────
  5096.   remarks:     Creates a new buffer and displays it in an edit window.
  5097.                If 'filename' is not specified, the name "NEW.TXT" is
  5098.                assumed. See the 'open' function for a description of
  5099.                valid open options.
  5100.  
  5101.   returns:     nothing
  5102.   see also:    close, open, openbuf, reopen, save, setname
  5103.  
  5104.   example:     opennew "NEW.C"
  5105.  
  5106.  
  5107.   openmouse    opt=[dr]
  5108.   ──────────────────────────────────────────────────────────────────────
  5109.   remarks      Initializes the mouse. If successful, the mouse pointer
  5110.                is displayed at the center of the screen and the event
  5111.                queue will process mouse events. For this function to
  5112.                return successfully, a mouse driver such as MOUSE.COM or
  5113.                MOUSE.SYS must be installed before the editor is started.
  5114.  
  5115.                Any combination of the following options can be
  5116.                specified:
  5117.  
  5118.                  d - hides the mouse pointer when a key is pressed. The
  5119.                      mouse pointer is re-displayed when the mouse is
  5120.                      used again.
  5121.                  r - reverses the mouse buttons
  5122.  
  5123.   returns:     TRUE is successful, otherwise null
  5124.   see also:    closemouse
  5125.  
  5126.  
  5127.   ovltext      string col row buffer
  5128.   ──────────────────────────────────────────────────────────────────────
  5129.   remarks:     This function overlays a string onto a buffer at the
  5130.                specified row and column. If 'buffer' is null or not
  5131.                specified, then the current buffer is assumed. If 'col'
  5132.                and 'row' are not specified, then the current cursor
  5133.                position is assumed.
  5134.  
  5135.   returns:     TRUE if successful, otherwise null.
  5136.  
  5137.   see also:    delchar, instext
  5138.  
  5139.   example:     ovltext "some text"
  5140.                  // overlays "some text" at the cursor in the current
  5141.                  //   buffer
  5142.                ovltext "some text" 2 20
  5143.                  // overlays "some text" at column 2, line 20 in the
  5144.                  //   current buffer
  5145.                ovltext "some text" 1 1 "abc"
  5146.                  // overlays "some text" at column 1, line 1 in the
  5147.                  //   buffer "abc"
  5148.  
  5149.  
  5150.   pad          string field opt=[lr] padstring
  5151.   ──────────────────────────────────────────────────────────────────────
  5152.   remarks:     Left or right justifies the specified string within a
  5153.                field of length 'field'. One of the following options may
  5154.                be specified:
  5155.  
  5156.                  l - left justifies the string
  5157.                  r - right justifies the string
  5158.  
  5159.                If no options are specified, then 'r' is assumed.
  5160.  
  5161.                'padstring' is the string used to pad unused positions in
  5162.                the field. If 'padstring' is not specified, then blanks
  5163.                are assumed.
  5164.  
  5165.   returns:     A padded left or right justified string.
  5166.   see also:    copystr, sizeof
  5167.  
  5168.   example:     pad 123 7                      // returns "    123"
  5169.                pad 123 7 'l'                  // returns "123    "
  5170.                pad 123 7 'r' '.'              // returns "....123"
  5171.  
  5172.  
  5173.   pagedown     (+/-)lines window
  5174.   ──────────────────────────────────────────────────────────────────────
  5175.   remarks:     Scrolls the text in a window down one page, plus or minus
  5176.                the specified number of lines. The default page size is
  5177.                the number of visible rows on the screen minus one row.
  5178.                The cursor is moved by the same amount that the text
  5179.                scrolls.
  5180.  
  5181.                If 'window' is not specified, the current window is
  5182.                assumed. The value of 'lines' is added to the page size.
  5183.  
  5184.   returns:     TRUE if successful, otherwise null.
  5185.   see also:    pageup
  5186.  
  5187.   example:     pagedown
  5188.                  // scrolls down one page
  5189.                pagedown 1
  5190.                  // scrolls down one page and one line
  5191.                pagedown -(getviewrows / 2)
  5192.                  // scrolls down one half page
  5193.  
  5194.  
  5195.   pageup       (+/-)lines window
  5196.   ──────────────────────────────────────────────────────────────────────
  5197.   remarks:     Scrolls the text in a window up one page, plus or minus
  5198.                the specified number of lines. The default page size is
  5199.                the number of visible rows on the screen minus one row.
  5200.                The cursor is moved by the same amount that the text
  5201.                scrolls.
  5202.  
  5203.                If 'window' is not specified, the current window is
  5204.                assumed. The value of 'lines' is added to the page size.
  5205.  
  5206.   returns:     TRUE if successful, otherwise null.
  5207.   see also:    pagedown
  5208.  
  5209.   example:     pageup
  5210.                  // scrolls up one page
  5211.                pageup 1
  5212.                  // scrolls up one page and one line
  5213.                pageup -(getviewrows / 2)
  5214.                  // scrolls up one half page
  5215.  
  5216.  
  5217.   pan          (+/-)cols (+/-)rows
  5218.   ──────────────────────────────────────────────────────────────────────
  5219.   remarks:     Pans to a new relative location on the virtual screen by
  5220.                changing the mapping of the physical video device (the
  5221.                screen) to the virtual video device. 'cols' and 'rows'
  5222.                specify the relative distance in screen columns and rows
  5223.                from the current position.
  5224.  
  5225.   returns:     TRUE if successful, otherwise null
  5226.   see also:    panto
  5227.  
  5228.   example:     pan 2 -2    // pans right 2 columns and up 2 rows
  5229.  
  5230.  
  5231.   pankey                                                      [Lib][win]
  5232.   ──────────────────────────────────────────────────────────────────────
  5233.   remarks:     Pans through the virtual screen by using the cursor keys.
  5234.   returns:     nothing
  5235.   see also:    sizekey
  5236.  
  5237.  
  5238.   panto        virtualX virtualY
  5239.   ──────────────────────────────────────────────────────────────────────
  5240.   remarks:     Pans to a new absolute location on the virtual screen by
  5241.                changing the mapping of the physical video device (the
  5242.                screen) to the virtual video device. 'virtualX' and
  5243.                'virtualY' specify an absolute X,Y coordinate on the
  5244.                virtual screen where the upper left corner of the
  5245.                physical screen is to be located.
  5246.  
  5247.                The virtual video device is 64000 x 64000 characters.
  5248.                When the editor is initially invoked, physical screen is
  5249.                placed at 16000,16000 in the virtual screen.
  5250.  
  5251.   returns:     TRUE if successful, otherwise null
  5252.   see also:    panto
  5253.  
  5254.   example:     panto 8000 10000     // pans to column 8000, row 10000
  5255.  
  5256.  
  5257.   pass         arg1 arg2 ...
  5258.   ──────────────────────────────────────────────────────────────────────
  5259.   remarks:     Calls the current executing function in the parent
  5260.                object(s) of the current (executing) object, passing the
  5261.                arguments 'arg1', 'arg2', etc.
  5262.  
  5263.                This function can be used to intercept an event or
  5264.                function call for pre-processing or post-processing.
  5265.  
  5266.   returns:     The return value from the function call.
  5267.   see also:    call, eval, send, sendobject
  5268.  
  5269.   example:     function <lbutton>
  5270.                  .
  5271.                  // pre-processing
  5272.                  .
  5273.                  pass  // pass control to <lbutton> in a parent object
  5274.                  .
  5275.                  // post-processing
  5276.                  .
  5277.                end 
  5278.  
  5279.  
  5280.   peek         address length
  5281.   ──────────────────────────────────────────────────────────────────────
  5282.   remarks:     Gets the portion of DOS memory specified by 'address' and
  5283.                'length'. The specified address must be an absolute
  5284.                32-bit address, not a segmented address. The maximum
  5285.                length is 16000.
  5286.  
  5287.   returns:     a string representing a copy of the specified DOS memory
  5288.                area.
  5289.   see also:    poke
  5290.  
  5291.   example:     peek 0 100     // returns the first 100 bytes of memory
  5292.  
  5293.  
  5294.   playkey      keyname                                        [Lib][mon]
  5295.   ──────────────────────────────────────────────────────────────────────
  5296.   remarks:     Plays the key macro assigned to the specified key. If
  5297.                'keyname' is not specified, the current scrap key macro
  5298.                is assumed.
  5299.  
  5300.   returns:     TRUE if successful, otherwise null.
  5301.   see also:    assignkey, openkey, playing?, savekey, setting
  5302.  
  5303.   example:     playkey
  5304.                  // plays the current scrap key macro
  5305.                playkey "<ctrl b>"
  5306.                  // plays the key macro assigned to <ctrl b>
  5307.  
  5308.  
  5309.   playing?     keyname
  5310.   ──────────────────────────────────────────────────────────────────────
  5311.   remarks:     Tests if a key macro is currently playing. If 'keyname'
  5312.                is not specified, the current scrap key macro is assumed.
  5313.   returns:     nothing
  5314.   see also:    assignkey, openkey, playkey, savekey, setting
  5315.  
  5316.  
  5317.   poke         address string
  5318.   ──────────────────────────────────────────────────────────────────────
  5319.   remarks:     Copies a string to the specified DOS memory address.
  5320.                'address' must be an absolute 32-bit address, not a
  5321.                segmented address. Obviously, this function should be
  5322.                used with care.
  5323.   returns:     nothing
  5324.   see also:    peek
  5325.  
  5326.  
  5327.   popcursor    buffer opt=[ad]
  5328.   ──────────────────────────────────────────────────────────────────────
  5329.   remarks:     If no options are specified, this function pops a
  5330.                position from the internal cursor stack, and moves the
  5331.                cursor to the popped position. The popped position must
  5332.                have been placed on the stack with the 'pushcursor'
  5333.                function. If 'buffer' is null or not specified, the
  5334.                current buffer is assumed.
  5335.  
  5336.                Any combination of the following options may be specified:
  5337.  
  5338.                  a - pops all positions from the cursor stack
  5339.                  d - don't move the cursor to the popped position
  5340.  
  5341.   returns:     nothing
  5342.   see also:    pushcursor
  5343.  
  5344.  
  5345.   pophistory   historybuffer title                              [Lib][a]
  5346.   ──────────────────────────────────────────────────────────────────────
  5347.   remarks:     Displays a history popup menu for the specified history
  5348.                buffer, with an optional menu title.
  5349.  
  5350.   returns:     The string selected from the popup menu. Returns null if
  5351.                nothing was selected or the history buffer does not
  5352.                exist.
  5353.  
  5354.   see also:    askhistory
  5355.  
  5356.   example:     pophistory "_load"
  5357.                  // displays a popup menu for the "_load" history buffer
  5358.                pophistory "_load" "Select a File"
  5359.                  // displays a popup menu for the "_load" history buffer
  5360.                  //   with the title 'Select a File'
  5361.  
  5362.  
  5363.   popup        menuname title menuwidth menuheight              [Lib][a]
  5364.   ──────────────────────────────────────────────────────────────────────
  5365.   remarks:     Displays the popup menu 'menuname'. 'menuname' can be the
  5366.                name of a menu defined with the 'menu' statement, or a
  5367.                bufferid. The following parameters can also be specified:
  5368.  
  5369.                title      - the popup window title.
  5370.  
  5371.                menuwidth  - the menu width. If none is specified, and
  5372.                             the menu was defined with the 'menu'
  5373.                             function, the length of the longest line
  5374.                             determines the menu width.
  5375.  
  5376.                menuheight - the menu height. If none is specified, the
  5377.                             lesser of the screen rows or the menu rows
  5378.                             is assumed.
  5379.  
  5380.                If the menu or buffer has been named with 'setbufname',
  5381.                it will remember the previous window and cursor position
  5382.                each time it is displayed.
  5383.  
  5384.   returns:     For popup menus defined with the 'menu' statement, the
  5385.                macro expression associated with the menu item is
  5386.                evaluated and the result is returned. If no macro
  5387.                expression is associated with menu item or the menu was
  5388.                not defined with the 'menu' statement, then the menu item
  5389.                description line is returned. If no item was selected
  5390.                from the menu, then the null string is returned.
  5391.  
  5392.   see also:    askfile, getmenu, menu
  5393.  
  5394.   example:     popup "files" "Select a File"
  5395.                  // displays the popup menu 'files' with the title
  5396.                  //   'Select a File'
  5397.                popup "files" '' 25 10
  5398.                  // displays the popup menu 'files' with no title and
  5399.                  //   a width of 25 columns and a height of 10 rows
  5400.  
  5401.  
  5402.   pos          searchstr string opt=[irwx]
  5403.   ──────────────────────────────────────────────────────────────────────
  5404.   remarks:     Searches for the specified search string within 'string'.
  5405.                Any of the following search options may be specified:
  5406.  
  5407.                  i - ignore case
  5408.                  r - search in reverse from the end of the string
  5409.                  w - whole words only
  5410.                  x - use regular expressions (see 'Regular Expression
  5411.                      Searching')
  5412.  
  5413.   returns:     The position in 'string' where the first occurrence of
  5414.                the search string is found, or zero if nothing is found.
  5415.  
  5416.   see also:    poschar, posnot, sub
  5417.  
  5418.   example:     pos 'p' "apples"               // returns 2
  5419.                pos 'p' "apples" 'r'           // returns 3
  5420.                pos 'ES' "apples" 'i'          // returns 5
  5421.  
  5422.  
  5423.   poschar      charclass string opt=[r]
  5424.   ──────────────────────────────────────────────────────────────────────
  5425.   remarks:     Searches for the first character in 'string' which is
  5426.                found in 'charclass'. Character ranges such as 'a-z' or
  5427.                'A-Z' can be specified. If option 'r' is specified, the
  5428.                search proceeds from the end of string to the beginning
  5429.                of the string.
  5430.  
  5431.   returns:     The position in the string where the first character was
  5432.                found, or zero if not found.
  5433.  
  5434.   see also:    pos, posnot
  5435.  
  5436.   example:     poschar "abc" "123b5a78"       // returns 4
  5437.                poschar "abc" "123b5a78" 'r'   // returns 6
  5438.                poschar "apples" "oranges"     // returns 3
  5439.                poschar "c-f" "oranges"        // returns 6
  5440.  
  5441.  
  5442.   posnot       charclass string opt=[r]
  5443.   ──────────────────────────────────────────────────────────────────────
  5444.   remarks:     Searches for the first character in 'string' which is not
  5445.                found in 'charclass'. Character ranges such as 'a-z' or
  5446.                'A-Z' can be specified. If option 'r' is specified, the
  5447.                search proceeds from the end of string to the beginning
  5448.                of the string.
  5449.  
  5450.   returns:     The position in the string where the first character not
  5451.                in 'charclass' was found, or zero if not found.
  5452.  
  5453.   see also:    pos, poschar
  5454.  
  5455.   example:     posnot "abc" "abc123ab"        // returns 4
  5456.                posnot "abc" "abc123ab" 'r'    // returns 6
  5457.                posnot "oranges" "apples"      // returns 2
  5458.                posnot "a-r" "oranges"         // returns 7
  5459.  
  5460.  
  5461.   prevfile                                                   [Lib][edit]
  5462.   ──────────────────────────────────────────────────────────────────────
  5463.   remarks:     Makes the previous buffer in the buffer list the current
  5464.                buffer, and displays it in the current edit window. The
  5465.                buffer previously displayed in the edit window will not
  5466.                be destroyed.
  5467.   returns:     nothing
  5468.   see also:    filelist, nextfile
  5469.  
  5470.  
  5471.   prevhist                                                 [Lib][prompt]
  5472.   ──────────────────────────────────────────────────────────────────────
  5473.   remarks:     Displays the previous history string in a prompt. This
  5474.                function is only for use within prompts.
  5475.   returns:     nothing
  5476.   see also:    gethistname, nexthist
  5477.  
  5478.  
  5479.   prevwindow                                                  [Lib][win]
  5480.   ──────────────────────────────────────────────────────────────────────
  5481.   remarks:     Switches the focus to the previous window on the screen.
  5482.   returns:     nothing
  5483.   see also:    nextwindow
  5484.  
  5485.  
  5486.   printblock   device header mark
  5487.   ──────────────────────────────────────────────────────────────────────
  5488.   remarks:     Prints marked text. The text is printed using the printer
  5489.                settings specified with the 'printformat' function. If
  5490.                'mark' is not specified, the default markid is assumed.
  5491.  
  5492.                All other arguments are identical to the 'printbuf'
  5493.                function (see 'printbuf').
  5494.  
  5495.   returns:     TRUE if successful, otherwise null.
  5496.   see also:    printbuf, printformat
  5497.  
  5498.  
  5499.   printbuf     device header buffer
  5500.   ──────────────────────────────────────────────────────────────────────
  5501.   remarks:     Prints a buffer. The text is printed using the printer
  5502.                settings specified with the 'printformat' function. If
  5503.                'buffer' is null or not specified, then the current
  5504.                buffer is assumed.
  5505.  
  5506.                'header' specifies a string to place on the header and/or
  5507.                footer of each page. Print headers and/or footers must be
  5508.                enabled with the 'printformat' function (see the
  5509.                'printformat' function).
  5510.  
  5511.                'device' is the printer device to use. Filenames or
  5512.                device names such as 'prn', 'lpt1', 'lpt2', etc.  can be
  5513.                specified. If 'device' is null or not specified, then
  5514.                'prn' is assumed.
  5515.  
  5516.   returns:     TRUE if successful, otherwise null.
  5517.   see also:    printblock, printformat
  5518.  
  5519.   example:     printbuf
  5520.                  // prints the current buffer to the device 'prn'
  5521.                printbuf "c:\\print.txt"
  5522.                  // prints the current buffer to the file 'c:\\print.txt'
  5523.                printbuf "lpt1" "Inventory" "abc"
  5524.                  // prints the buffer 'abc' to the device 'prn' using
  5525.                  //   the header/footer 'Inventory'
  5526.  
  5527.  
  5528.   printformat  printer opt=[efhlps] pagesize leftmarg topmarg rightmarg
  5529.                bottommarg linespace copies
  5530.   ──────────────────────────────────────────────────────────────────────
  5531.   remarks:     Changes the current printer settings. The following
  5532.                printer settings can be specified:
  5533.  
  5534.                printer    - reserved for future use
  5535.  
  5536.                pagesize   - specifies the lines per page of printed
  5537.                             output. This includes the top margin and the
  5538.                             bottom margin. After the specified lines per
  5539.                             page have been printed, a formfeed character
  5540.                             (ASCII 12) will be sent to the printer and a
  5541.                             new page will be started.
  5542.  
  5543.                             If 'pagesize' is zero, printing will be
  5544.                             continuous (no formfeed characters will be
  5545.                             sent to the printer) and 'topmarg',
  5546.                             'bottommarg', and the option 'p' will be
  5547.                             ignored.
  5548.  
  5549.                linespace  - specifies the number of lines to advance
  5550.                             after printing each line of output. A value
  5551.                             of 1 generates single-spaced output, 2
  5552.                             generates double-spaced output, and so on.
  5553.  
  5554.                copies     - specifies the number of copies to print.
  5555.  
  5556.                topmarg    - specifies the number of blank lines to
  5557.                             precede printed output at the top of each
  5558.                             page. This value is included in 'pagesize'.
  5559.                             'topmarg' is ignored if 'pagesize' is zero.
  5560.  
  5561.                bottommarg - specifies the number of blank lines to
  5562.                             follow  printed output at the bottom of each
  5563.                             page. This value is included in 'pagesize'.
  5564.                             'bottommarg' is ignored if 'pagesize' is
  5565.                             zero.
  5566.  
  5567.                leftmarg   - specifies the number of blank columns to
  5568.                             precede the printed output on each line.
  5569.  
  5570.                rightmarg  - specifies the column position at which to
  5571.                             truncate each printed line. This column
  5572.                             position is relative to column zero of the
  5573.                             printed output, not the file being printed.
  5574.                             If zero is specified, lines are not
  5575.                             truncated.
  5576.  
  5577.  
  5578.                Any of the following print options can also be specified:
  5579.  
  5580.                h - prints a header at the top of each page. The header
  5581.                    is specified in the 'printbuf' or 'printblock'
  5582.                    functions when printing. This option is ignored if
  5583.                    'pagesize' is zero.
  5584.  
  5585.                f - prints a footer at the bottom of each page. The
  5586.                    footer is specified in the 'printbuf' or 'printblock'
  5587.                    functions when printing. This option is ignored if
  5588.                    'pagesize' is zero.
  5589.  
  5590.                s - adds a separator line after the header line and
  5591.                    before the footer line.
  5592.  
  5593.                p - prints a right justified page number on the header
  5594.                    and footer lines. If neither a header or footer was
  5595.                    specified, a blank header line is assumed. This
  5596.                    option is ignored if 'pagesize' is zero.
  5597.  
  5598.                l - prints a line number at the beginning of each line.
  5599.  
  5600.                e - sends a formfeed character to the printer when
  5601.                    printing is completed.
  5602.  
  5603.   returns:     nothing
  5604.   see also:    printblock, printbuf
  5605.  
  5606.  
  5607.   process 
  5608.   ──────────────────────────────────────────────────────────────────────
  5609.   remarks:     Creates an editor subprocess by invoking the editor
  5610.                recursively. This function does not return until the
  5611.                'endprocess' function is called. The effect of this
  5612.                function is equivalent to the following loop:
  5613.  
  5614.                  while dispatch do 
  5615.                    .
  5616.                    .
  5617.                  end 
  5618.  
  5619.   returns:     nothing
  5620.   see also:    dispatch, endprocess
  5621.  
  5622.  
  5623.   purgequeue 
  5624.   ──────────────────────────────────────────────────────────────────────
  5625.   remarks:     Removes all events from the event queue.
  5626.   returns:     nothing
  5627.   see also:    queue, queueobject, sizequeue
  5628.  
  5629.  
  5630.   pushcursor   buffer
  5631.   ──────────────────────────────────────────────────────────────────────
  5632.   remarks:     Saves the cursor position on an internal cursor stack
  5633.                which is unique for each buffer. If 'buffer' is null or
  5634.                not specified, the current buffer is assumed.
  5635.   returns:     nothing
  5636.   see also:    popcursor
  5637.  
  5638.  
  5639.   qualify      filename filespec
  5640.   ──────────────────────────────────────────────────────────────────────
  5641.   remarks:     Converts an unqualified or partially qualified filename
  5642.                into a fully-qualified filename, including drive and
  5643.                directory. 'filespec' is used as the 'template' for the
  5644.                qualification. If 'filespec' is not specified, the
  5645.                current drive and path are assumed.
  5646.  
  5647.   returns:     a fully qualified filename or directory specification.
  5648.   see also:    bootpath, getbootpath
  5649.  
  5650.   example:     qualify "file.txt"
  5651.                  // returns C:\FILE.TXT if C:\ is the current path
  5652.                qualify "file.txt" "e:\\doc"
  5653.                  // returns E:\DOC\FILE.TXT
  5654.  
  5655.  
  5656.   queue        function arg1 arg2 ...
  5657.   ──────────────────────────────────────────────────────────────────────
  5658.   remarks:     Queues a function call for later execution. The specified
  5659.                function and arguments 'arg1', 'arg2', etc. are placed on
  5660.                on the event queue. When the editor is idle, it will read
  5661.                the event queue and attempt to call the function in the
  5662.                current event object.
  5663.  
  5664.   returns:     TRUE if successful, otherwise null.
  5665.   see also:    purgequeue, queueobject, sizequeue
  5666.  
  5667.   example:     queue "abc" 1 2 4
  5668.                  // queues the function call 'abc 1 2 4' for later
  5669.                  //   execution in the current event object
  5670.  
  5671.  
  5672.   queuekey     keycode1 keycode2 ...
  5673.   ──────────────────────────────────────────────────────────────────────
  5674.   remarks:     Pushes the specified keycodes onto the editor event queue
  5675.                for later execution.
  5676.  
  5677.   returns:     nothing
  5678.   see also:    getkey, getkeycode, sendkey
  5679.  
  5680.   example:     keycode = getkey     // gets a keycode...
  5681.                queuekey keycode     // and queues it for execution
  5682.  
  5683.  
  5684.   queueobject  object function arg1 arg2 ...
  5685.   ──────────────────────────────────────────────────────────────────────
  5686.   remarks:     Queues a function call for later execution in a specific
  5687.                object. The specified object, function, and arguments
  5688.                'arg1', 'arg2', etc. are placed on the event queue. When
  5689.                the editor is idle, it will read the event queue and
  5690.                attempt to call the function in the specified object.
  5691.  
  5692.   returns:     TRUE if successful, otherwise null.
  5693.   see also:    purgequeue, queue, sizequeue
  5694.  
  5695.   example:     queueobject "edit" "abc" 1 2 4
  5696.                  // queues the function call 'abc 1 2 4' for later
  5697.                  //   execution in the object 'edit'
  5698.  
  5699.  
  5700.   rand         seed
  5701.   ──────────────────────────────────────────────────────────────────────
  5702.   remarks:     Generates a random number between 0 and 2147483647. The
  5703.                random number generator can be initialized by specifying
  5704.                a random number 'seed'.
  5705.  
  5706.                Note: the editor library initializes the random number
  5707.                generator with a value based on the current time when the
  5708.                editor is started.
  5709.  
  5710.   returns:     a random number.
  5711.  
  5712.   example:     rand 12345    // initializes the random number generator
  5713.                rand mod 100  // returns a random number between 0 and 99
  5714.  
  5715.  
  5716.   readfile     handle length
  5717.   ──────────────────────────────────────────────────────────────────────
  5718.   remarks:     Reads 'length' characters from the current position in
  5719.                the open file specified by 'handle'. 'length' may not
  5720.                exceed 16000. The current position in the file is
  5721.                advanced by the amount of characters read.
  5722.  
  5723.   returns:     The data read from the file if successful, otherwise
  5724.                null. The number of characters actually read from the
  5725.                file can be determined by using the 'sizeof' function on
  5726.                the returned string.
  5727.  
  5728.   see also:    closefile, filepos, openfile, writefile
  5729.  
  5730.   example:     handle = openfile "C:\\FILE.TXT"   // reads the first
  5731.                if handle <> -1 then               // 100 bytes of
  5732.                  str = readfile handle 100        // C:\FILE.TXT into
  5733.                  closefile handle                 // the variable 'str'
  5734.                end 
  5735.  
  5736.  
  5737.   redo         buffer
  5738.   ──────────────────────────────────────────────────────────────────────
  5739.   remarks:     Reverses the changes made by the last 'undo' function
  5740.                call for a specific buffer. If 'buffer' is null or not
  5741.                specified, then the current buffer is assumed.
  5742.   returns:     TRUE if successful, otherwise null.
  5743.   see also:    undo, undobegin, undocursor, undoend
  5744.  
  5745.  
  5746.   renamefile   filename newfilename
  5747.   ──────────────────────────────────────────────────────────────────────
  5748.   remarks:     Renames the the specified filename to 'newfilename'. A
  5749.                directory can also be renamed to another directory on the
  5750.                same drive.
  5751.   returns:     TRUE if successful, otherwise null.
  5752.   see also:    copyfile, deletefile
  5753.  
  5754.  
  5755.   reopen       filename                                 [Ext][edit_fmgr]
  5756.   ──────────────────────────────────────────────────────────────────────
  5757.   remarks:     Reloads the current window with the specified file or
  5758.                directory. If 'filename' is not specified, the buffer
  5759.                name of the current buffer is assumed. The previous file
  5760.                or directory is destroyed.
  5761.  
  5762.   returns:     nothing
  5763.   see also:    close, open, openbuf, opennew, save, setname
  5764.  
  5765.   example:     reopen
  5766.                  // refreshes the current file from disk
  5767.                reopen "C:\\FILE.TXT"
  5768.                  // loads C:\FILE.TXT into the current window,
  5769.                  //   destroying the existing buffer in the window
  5770.  
  5771.  
  5772.   replace      searchstr replacestr opt=[abfgilnorswx*[~] mark buffer
  5773.   ──────────────────────────────────────────────────────────────────────
  5774.   remarks:     Searches for the specified search string within a buffer,
  5775.                mark, or line, and replaces it with 'replstr'. If
  5776.                'buffer' is not specified, the current buffer is assumed.
  5777.  
  5778.                See the 'find' function for a list of available search
  5779.                options.
  5780.  
  5781.                If option 'a' is specified, all occurrences of the
  5782.                'searchstr' found will be replaced with 'replacestr'. If
  5783.                option 'a' is not specified, then only the first
  5784.                occurrence of the search string is replaced.
  5785.  
  5786.                If the string is found and neither of the search options
  5787.                'a' or 'n' are specified, then the cursor is moved to the
  5788.                beginning of the found string, otherwise the cursor does
  5789.                not move.
  5790.  
  5791.   returns:     If option 'a' is specified, the number of replacements
  5792.                made is returned, otherwise the length of the replaced
  5793.                string is returned. If nothing is found, then null is
  5794.                returned.
  5795.  
  5796.   see also:    find, search
  5797.  
  5798.   example:     replace "apples" "oranges"
  5799.                  // replaces the next occurrence of 'apples' with
  5800.                  //   'oranges' in the current buffer, starting at one
  5801.                  //   character after the cursor position
  5802.                replace "apples" "oranges" "ag"
  5803.                  // replaces all occurrences of 'apples' with 'oranges'
  5804.                  //   in the current buffer and returns the number of
  5805.                  //   occurrences. The cursor is not moved.
  5806.  
  5807.  
  5808.   repldlg                                                    [Lib][edit]
  5809.   ──────────────────────────────────────────────────────────────────────
  5810.   remarks:     Displays a find and replace dialog box.
  5811.   returns:     the search and replace multi-string (searchstr /
  5812.                replacestr / options) to be used for the searching and
  5813.                replacing, or null if nothing is specified
  5814.   see also:    about, askprint, finddlg, scandlg
  5815.  
  5816.  
  5817.   restore      window                                           [Lib][a]
  5818.   ──────────────────────────────────────────────────────────────────────
  5819.   remarks:     Restores the specified window. If 'window' is not
  5820.                specified, the current window is assumed.
  5821.   returns:     nothing
  5822.   see also:    max?, maximize, min?, minimize
  5823.  
  5824.  
  5825.   restoredesk                                                   [Lib][a]
  5826.   ──────────────────────────────────────────────────────────────────────
  5827.   remarks:     Removes all existing windows on the screen and makes the
  5828.                current desktop visible. The current desktop is set by
  5829.                the 'opendesk', 'currdesk', and 'openhistory' functions.
  5830.                The 'begdesk' and 'enddesk' functions also change the
  5831.                current desktop.
  5832.  
  5833.   returns:     nothing
  5834.   see also:    begdesk, currdesk, enddesk, opendesk, openhistory,
  5835.                savedesk
  5836.  
  5837.   example:     opendesk "C:\\DESKTOP.DSK"
  5838.                  // loads the previously saved desktop in C:\DESKTOP.DSK
  5839.                  //   and makes it the current desktop
  5840.                restoredesk
  5841.                  // makes the current desktop visible
  5842.  
  5843.  
  5844.   right        cols buffer
  5845.   ──────────────────────────────────────────────────────────────────────
  5846.   remarks:     Moves the cursor to the right. 'cols' specifies the
  5847.                number of columns to move. If 'cols' is not specified, 1
  5848.                is assumed. If 'buffer' is null or not specified, the
  5849.                current buffer is assumed.
  5850.  
  5851.   returns:     TRUE if successful, otherwise null.
  5852.   see also:    down, left, up
  5853.  
  5854.   example:     right      // moves the cursor right 1 column
  5855.                right 5    // moves the cursor right 5 columns
  5856.  
  5857.  
  5858.   rollcol      (+/-)cols window
  5859.   ──────────────────────────────────────────────────────────────────────
  5860.   remarks:     Scrolls the text in a window left or right, relative to
  5861.                the current position. If 'window' is not specified, the
  5862.                current window is assumed. The cursor is moved by the
  5863.                same amount that the text scrolls.
  5864.  
  5865.                'cols' specifies the number of columns to scroll.
  5866.                Positive numbers scroll right and negative numbers scroll
  5867.                left.
  5868.  
  5869.   returns:     TRUE if successful, otherwise null.
  5870.   see also:    rollrow
  5871.  
  5872.   example:     rollcol 4            // scrolls right 4 columns
  5873.                rollcol -1           // scrolls left 1 column
  5874.  
  5875.  
  5876.   rollrow      rows window
  5877.   ──────────────────────────────────────────────────────────────────────
  5878.   remarks:     Scrolls the text in window up or down, relative to the
  5879.                current position. If 'window' is not specified, the
  5880.                current window is assumed. The cursor is moved by the
  5881.                same amount that the text scrolls.
  5882.  
  5883.                'rows' specifies the number of lines to scroll. Positive
  5884.                numbers scroll down and negative numbers scroll up.
  5885.  
  5886.   returns:     TRUE if successful, otherwise null.
  5887.   see also:    rollcol
  5888.  
  5889.   example:     rollrow 4            // scrolls down 4 rows
  5890.                rollrow -1           // scrolls up 1 row
  5891.  
  5892.  
  5893.   row          row buffer
  5894.   ──────────────────────────────────────────────────────────────────────
  5895.   remarks:     Moves the cursor to the specified row, but does not
  5896.                change the column. If 'buffer' is null or not specified,
  5897.                the current buffer is assumed.
  5898.  
  5899.   returns:     TRUE if successful, otherwise null.
  5900.   see also:    col, gotopos
  5901.  
  5902.   example:     row 1
  5903.                  // moves the cursor to line 1 in the current buffer
  5904.                row (getlines)
  5905.                  // moves the cursor to the last line in the current
  5906.                  //   buffer
  5907.  
  5908.  
  5909.   runmacro     filename arg2 arg3 ...
  5910.   ──────────────────────────────────────────────────────────────────────
  5911.   remarks:     Runs the compiled macro code in the specified filename.
  5912.                The macro code is loaded into a temporary object which is
  5913.                descended from the current event object. The macro code
  5914.                is then executed in the temporary object and is passed
  5915.                the 'filename' followed by the optional arguments 'arg2',
  5916.                'arg3', etc. When the macro is finished executing, the
  5917.                temporary object is destroyed and the macro is discarded.
  5918.  
  5919.   returns:     The return value from executing the macro.
  5920.   see also:    compilemacro, eval, includemacro
  5921.  
  5922.   example:     runmacro "c:\\aurora\\macro\\mymacro.x"
  5923.  
  5924.  
  5925.   save         filename                                      [Ext][edit]
  5926.   ──────────────────────────────────────────────────────────────────────
  5927.   remarks:     Saves the current buffer to the specified filename. If a
  5928.                filename is not specified, the buffer name of the current
  5929.                buffer is assumed. If the backup setting in the current
  5930.                window is ON, the file is backed-up before saving.
  5931.  
  5932.   returns:     Non-zero if successful, otherwise zero.
  5933.   see also:    close, open, setname, setting, setting?
  5934.  
  5935.   example:     save
  5936.                  // saves the current buffer to the file name specified
  5937.                  //   by the name of the buffer
  5938.                save "C:\SAVE.TXT"
  5939.                  // saves the current buffer to C:\SAVE.TXT
  5940.  
  5941.  
  5942.   saveblock    filename opt=[abetxz] mark delimiter filedelim comment1
  5943.                comment2
  5944.   ──────────────────────────────────────────────────────────────────────
  5945.   remarks:     Saves marked text to the specified filename. If 'mark' is
  5946.                not specified, the default markid is assumed.
  5947.  
  5948.                All other arguments and options are identical to the
  5949.                'savebuf' function (see 'savebuf').
  5950.  
  5951.   returns:     TRUE if successful, otherwise null.
  5952.   see also:    loadbuf, savebuf
  5953.  
  5954.  
  5955.   savebuf      filename opt=[abetxz] buffer delimiter filedlm comment1
  5956.                comment2
  5957.   ──────────────────────────────────────────────────────────────────────
  5958.   remarks:     Saves a buffer to the specified filename. If 'buffer' is
  5959.                null or not specified, then the current buffer is
  5960.                assumed.
  5961.  
  5962.                The following options may be specified:
  5963.  
  5964.                  a - appends to end of the file when saving
  5965.                  b - saves the file in binary mode, with no line
  5966.                      delimiters
  5967.                  e - entabs the buffer while saving. The tabwidth is
  5968.                      specified after the 'e' option - for example: 'e8'.
  5969.                  t - trims trailing blanks from each line
  5970.                  x - disables conversion of folds to fold comments
  5971.                  z - appends ctrl-z (ASCII 26) to the end of the file
  5972.                      when saving
  5973.  
  5974.                'delimiter' specifies a 1 or 2 byte line delimiter string
  5975.                to be appended to the end of each line in the saved file.
  5976.                If 'delimiter' is null or not specified, then the line
  5977.                delimiter specified when loading the file is assumed. If
  5978.                the buffer was not loaded but created new, then a line
  5979.                delimiter of 0D0Ah (CR/LF) is assumed.
  5980.  
  5981.                'filedlm' specifies an alternate 1 byte file delimiter to
  5982.                save at the end of the file.
  5983.  
  5984.                'comment1' and 'comment2' specify the opening and closing
  5985.                comment strings to be used when converting text folds to
  5986.                fold comments during the saving process. Specifying
  5987.                option 'x' disables the saving of folds as fold comments.
  5988.  
  5989.   returns:     TRUE if successful, otherwise null.
  5990.   see also:    createbbuf, createbuf, destroybuf, loadbuf, saveblock
  5991.  
  5992.   example:     savebuf "c:\\file.txt"
  5993.                  // saves the current buffer to the file 'c:\file.txt',
  5994.                  //   and overwrites any previous data in the file.
  5995.                  //   The file is saved with CR/LF line delimiters.
  5996.                savebuf "c:\\file.txt" 'b' "abc"
  5997.                  // saves the buffer 'abc' to 'c:\file.txt' in binary
  5998.                  //   mode, with no line delimiters
  5999.                savebuf "c:\\file.txt" 't' '' (hex2bin "0A") (char 0)
  6000.                  // saves the current buffer to 'c:\file.txt' and
  6001.                  //   trims trailing blanks from each line. The file
  6002.                  //   is saved with '0A' (LF) line delimiters and a
  6003.                  //   file delimiter of ASCII 0.
  6004.  
  6005.  
  6006.   savedesk     filename                                         [Lib][a]
  6007.   ──────────────────────────────────────────────────────────────────────
  6008.   remarks:     Saves the current desktop to the specified filename. The
  6009.                current desktop is set by the 'opendesk', 'currdesk', and
  6010.                'openhistory' functions. The 'begdesk' and 'enddesk'
  6011.                functions also change the current desktop.
  6012.  
  6013.   returns:     TRUE is successful, otherwise null.
  6014.   see also:    begdesk, currdesk, enddesk, opendesk, restoredesk
  6015.  
  6016.   example:     currdesk
  6017.                  // set current desktop to the current window layout
  6018.                savedesk "C:\\DESKTOP.DSK"
  6019.                  // save the current desktop to C:\DESKTOP.DSK
  6020.  
  6021.  
  6022.   savehistory  filename                                         [Lib][a]
  6023.   ──────────────────────────────────────────────────────────────────────
  6024.   remarks:     Saves all existing history buffers and the current
  6025.                desktop to the specified filename.
  6026.   returns:     TRUE if successful, otherwise null.
  6027.   see also:    openhistory
  6028.  
  6029.  
  6030.   savekey      filename                                         [Lib][a]
  6031.   ──────────────────────────────────────────────────────────────────────
  6032.   remarks:     Saves all current key macros to the specified filename.
  6033.                The key macros can be reloaded later with the 'openkey'
  6034.                function.
  6035.   returns:     TRUE if successful, otherwise null.
  6036.   see also:    openkey
  6037.  
  6038.  
  6039.   saveobject   object filename
  6040.   ──────────────────────────────────────────────────────────────────────
  6041.   remarks:     Saves an object to the specified filename as executable
  6042.                macro code. If 'object' is not specified, then the
  6043.                current object is assumed.
  6044.   returns:     TRUE if successful, otherwise null.
  6045.   see also:    includemacro, runmacro
  6046.  
  6047.  
  6048.   say          message opt=[b]                                  [Lib][a]
  6049.   ──────────────────────────────────────────────────────────────────────
  6050.   remarks:     Displays the specified message at the location of the
  6051.                primary title (title 1) in an edit window or file manager
  6052.                window. If option 'b' is specified, the PC speaker beeps.
  6053.                The message is cleared the next time the display is
  6054.                updated.
  6055.  
  6056.   returns:     nothing
  6057.   see also:    msgbox, okbox, shortbox, yncbox
  6058.  
  6059.   example:     say "Hello World"
  6060.  
  6061.  
  6062.   scandlg                                               [Lib][edit_fmgr]
  6063.   ──────────────────────────────────────────────────────────────────────
  6064.   remarks:     Displays a file scan dialog box.
  6065.   returns:     the scan multi-string (searchstr / filespec / options) to
  6066.                be used for the scan, or null if nothing is specified
  6067.   see also:    about, askprint, finddlg, repldlg
  6068.  
  6069.  
  6070.   scanfile     filename searchstr opt=[iwx] delimiter
  6071.   ──────────────────────────────────────────────────────────────────────
  6072.   remarks:     Scans the specified filename for the string 'searchstr'.
  6073.                'delimiter' specifies the line delimiter used to separate
  6074.                lines in the file. If 'delimiter' is not specified, then
  6075.                CR/LF (0D0Ah) is assumed.
  6076.  
  6077.                Any of the following options may be specified:
  6078.  
  6079.                  i - ignores case during the scan
  6080.                  w - scans for whole words only
  6081.                  x - checks for regular expression chars in the search
  6082.                      string (see 'Regular Expression Searching')
  6083.  
  6084.   returns:     The absolute position in the file where the search string
  6085.                was found (starting with 1), or zero if not found. If the
  6086.                scan was interrupted by <ctrl break>, then -1 is
  6087.                returned.
  6088.  
  6089.   see also:    find, replace
  6090.  
  6091.   example:     scanfile "C:\\FILE.TXT" "apples" "i"
  6092.                  // returns the first position in C:\FILE.TXT where
  6093.                  //   'apples' is found (ignoring case), or zero if
  6094.                  //   not found
  6095.  
  6096.  
  6097.   scanfiles    filespec searchstr opt=[iwx]                     [Lib][a]
  6098.   ──────────────────────────────────────────────────────────────────────
  6099.   remarks:     Scans multiple files specified by 'filespec' for the
  6100.                specified search string. A file manager window is
  6101.                displayed listing all files in which the string was
  6102.                found. When a file is opened from the file manager
  6103.                window, the cursor is positioned at the first occurrence
  6104.                of the search string. The 'findlast' function can be used
  6105.                to find other occurrences.
  6106.  
  6107.                Any of the following search options can be specified:
  6108.  
  6109.                  i - ignore case during the search
  6110.                  w - search for whole words only
  6111.                  x - check for regular expression chars in the search
  6112.                      string (see 'Regular Expression Searching')
  6113.  
  6114.   returns:     The number of files in which the search string is found,
  6115.                or null if the search string is not found, or -2 if the
  6116.                filespec is not found.
  6117.  
  6118.   see also:    findlast, search
  6119.  
  6120.   example:     scanfiles "D:\\*.TXT" "apples" "iw"
  6121.                  // scans all files with the extension .TXT in the
  6122.                  //   root directory of the D drive for the string
  6123.                  //   'apples', ignoring case, whole words only.
  6124.  
  6125.  
  6126.   scrollcol    column window
  6127.   ──────────────────────────────────────────────────────────────────────
  6128.   remarks:     Scrolls the text in window so that 'column' is the
  6129.                leftmost column in the window. The cursor is moved by the
  6130.                same amount that the text scrolls. If 'window' is not
  6131.                specified, the current window is assumed.
  6132.  
  6133.   returns:     TRUE if successful, otherwise null.
  6134.   see also:    scrollrow
  6135.  
  6136.   example:     scrollcol 4
  6137.                  // scrolls the current window so that the leftmost
  6138.                  //   column in the window is 4. The cursor moves
  6139.                  //   accordingly.
  6140.  
  6141.  
  6142.   scrollrow    row window
  6143.   ──────────────────────────────────────────────────────────────────────
  6144.   remarks:     Scrolls the text in window so that 'row' is the topmost
  6145.                line in the window. The cursor is moved by the same
  6146.                amount that the text scrolls. If 'window' is not
  6147.                specified, the current window is assumed.
  6148.  
  6149.   returns:     TRUE if successful, otherwise null.
  6150.   see also:    scrollcol
  6151.  
  6152.   example:     scrollrow 4
  6153.                  // scrolls the current window so that the topmost
  6154.                  //   line in the window is 4. The cursor moves
  6155.                  //   accordingly.
  6156.  
  6157.  
  6158.   search       searchstr/replstr/options reverse repeat         [Ext][a]
  6159.   ──────────────────────────────────────────────────────────────────────
  6160.   remarks:     Searches for the specified search string in the current
  6161.                buffer, and optionally replaces it with 'replstr'. This
  6162.                function provides a higher level interface to the 'find'
  6163.                and 'replace' builtin functions.
  6164.  
  6165.                The parameters 'searchstr/replstr/options' are entered
  6166.                together as one argument in multi-string format (see the
  6167.                'joinstr' and 'splitstr' functions).
  6168.  
  6169.                If no search options are explicitly specified, the
  6170.                configuration variables 'SearchOpt' and 'ReplaceOpt' are
  6171.                assumed. See the 'find' function for a description of
  6172.                valid search options.
  6173.  
  6174.                If 'replstr' is specified and option 'a' (replace all) is
  6175.                not specified, the editor will prompt for each
  6176.                replacement.
  6177.  
  6178.                If 'reverse' is 'r', then the search proceeds in the
  6179.                reverse direction from the direction specified in the
  6180.                search options.
  6181.  
  6182.                If 'repeat' is TRUE, then search option 'g' (global
  6183.                search) will be ignored if specified.
  6184.  
  6185.   returns:     The same values as the 'find' and 'replace' builtin
  6186.                functions, depending on the action performed (find or
  6187.                replace) and the search options specified (see the 'find'
  6188.                and 'replace' functions).
  6189.  
  6190.   see also:    find, findlast, joinstr, replace, scanfiles,
  6191.                splitstr
  6192.  
  6193.   example:     search "apples"
  6194.                  // searches for the string 'apples' (case sensitive)
  6195.                  //   starting at one char to the right of the cursor
  6196.                  //   and searching toward the end of the buffer
  6197.                search "apples/ir*"
  6198.                  // searches for 'apples' (case insensitive) starting at
  6199.                  //   the cursor position and searching toward the
  6200.                  //   beginning of the buffer
  6201.                search "app'/les/bgw"
  6202.                  // searches for 'app/les' (whole words only), limiting
  6203.                  //   the search to the current mark and starting from
  6204.                  //   the beginning of the mark
  6205.                search "apples/oranges/ag"
  6206.                  // replaces all occurrences of 'apples' with 'oranges'
  6207.                  //   in the current buffer and returns the number of
  6208.                  //   occurrences. The cursor is not moved.
  6209.  
  6210.  
  6211.   send         funexpression arg1 arg2 ...
  6212.   ──────────────────────────────────────────────────────────────────────
  6213.   remarks:     Calls a function in the current event object whose name
  6214.                is the value of 'funexpression', passing the optional
  6215.                arguments 'arg1', 'arg2', etc.
  6216.  
  6217.   returns:     The return value from calling the specified function.
  6218.   see also:    call, eval, pass, sendkey, sendobject
  6219.  
  6220.   example:     send <ctrl b>                // simulates <ctrl b>
  6221.                send '<' + "ctrl b" + '>'    // simulates <ctrl b>
  6222.  
  6223.  
  6224.   sendkey      keycode1 keycode2 ...
  6225.   ──────────────────────────────────────────────────────────────────────
  6226.   remarks:     Executes the specified keycodes immediately and
  6227.                synchronously.
  6228.  
  6229.   returns:     nothing
  6230.   see also:    getkey, getkeycode, queuekey, send, sendobject
  6231.  
  6232.   example:     keycode = getkey     // gets a keycode...
  6233.                sendkey keycode      // and executes it immediately
  6234.  
  6235.  
  6236.   sendobject   objexpression funexpression arg1 arg2 ...
  6237.   ──────────────────────────────────────────────────────────────────────
  6238.   remarks:     Calls a function in the object 'objexpression' whose name
  6239.                is the value of 'funexpression', passing the optional
  6240.                arguments 'arg1', 'arg2', etc.
  6241.  
  6242.   returns:     The return value from calling the specified function.
  6243.   see also:    call, eval, pass, send, sendkey
  6244.  
  6245.   example:     sendobject "edit" <ctrl b>
  6246.                sendobject "edit" '<' + "ctrl b" + '>'
  6247.  
  6248.  
  6249.   setalarm     timerid year mon day dayofweek hour min second object
  6250.                function arg1 arg2 ...
  6251.   ──────────────────────────────────────────────────────────────────────
  6252.   remarks:     Sets a timer to call 'function' automatically at the
  6253.                specified date and time. If '-1' is specified for for any
  6254.                of the date or time parameters, the timer will call the
  6255.                function for any value of that parameter (the parameter
  6256.                becomes a 'wildcard').
  6257.  
  6258.                If -1 is specified for any of the arguments, the timer is
  6259.                a 'repeating' timer and is not destroyed, otherwise the
  6260.                timer is automatically destroyed after the function call.
  6261.  
  6262.                The function is called in the specified object, passing
  6263.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  6264.                is not specified, the current event object is assumed.
  6265.  
  6266.                'timerid' uniquely identifies the timer. If a timerid is
  6267.                not specified, a unique timerid is generated. A maximum
  6268.                of 16 timerid's may be active at one time.
  6269.  
  6270.   returns:     The timerid if successful, otherwise null.
  6271.   see also:    destroytimer, setrepeat, settimer, timer?
  6272.  
  6273.   example      setalarm "xyz"   // timerid 'xyz'
  6274.                   -1            // any year
  6275.                   -1            // any month
  6276.                   -1            // any day
  6277.                   -1            // any day of the week
  6278.                   22            // 10 o'clock at night
  6279.                    0            // zero minutes
  6280.                    0            // zero seconds
  6281.                   ''            // send to current event object
  6282.                   "abc"         // function 'abc'
  6283.  
  6284.                // the above example sets timer 'xyz' to call the function
  6285.                //  'abc' at 10 o'clock every night in the current event
  6286.                //  object
  6287.  
  6288.  
  6289.   setbootpath  path
  6290.   ──────────────────────────────────────────────────────────────────────
  6291.   remarks:     Changes the editor 'boot' path for the current session.
  6292.   returns:     nothing
  6293.   see also:    bootpath, getbootpath
  6294.  
  6295.  
  6296.   setbufname   name buffer
  6297.   ──────────────────────────────────────────────────────────────────────
  6298.   remarks:     Associates a descriptive name with a buffer.  If 'buffer'
  6299.                is null or not specified, then the current buffer is
  6300.                assumed.
  6301.  
  6302.                The buffer name is used by editor library functions to
  6303.                identify the current buffer, and is usually a fully
  6304.                qualified file name.
  6305.  
  6306.                Note: the 'loadbuf' function will automatically set the
  6307.                buffer name to the file name where the buffer was loaded
  6308.                ('setbufname' is not required).
  6309.  
  6310.   returns:     nothing
  6311.   see also:    getbufname
  6312.  
  6313.  
  6314.   setbook      bookmark buffer
  6315.   ──────────────────────────────────────────────────────────────────────
  6316.   remarks:     Creates a new bookmark or modifies an existing bookmark.
  6317.                The bookmark is placed at the current cursor position in
  6318.                the specified buffer. If the buffer is null or not
  6319.                specified, the current buffer is assumed.
  6320.  
  6321.   returns:     The bookmarkid if a bookmark is created, or TRUE if an
  6322.                existing bookmark is modified, otherwise null.
  6323.   see also:    destroybook
  6324.  
  6325.   example:     setbook 'A'
  6326.                  // places bookmark "A" at the cursor position
  6327.  
  6328.  
  6329.   setborder    opt=[ios012345] xd yd cornerX cornerY bchr1 bchr2 window
  6330.   ──────────────────────────────────────────────────────────────────────
  6331.   remarks:     Changes the border style of a window. If 'window' is not
  6332.                specified, the current window is assumed. Note that the
  6333.                window must first be configured to allow borders by
  6334.                calling the 'setframe' function.
  6335.  
  6336.                The following parameters can be specified:
  6337.  
  6338.                xd       - left and right border thickness
  6339.                yd       - top and bottom border thickness
  6340.                cornerX  - amount or horz overlap on the border corners
  6341.                cornerY  - amount or vert overlap on the border corners
  6342.                bchr1    - border fill character
  6343.                bchr2    - border corner fill character
  6344.  
  6345.                The following options can also be specified:
  6346.  
  6347.                  i - inward 3D effect
  6348.                  o - outward 3D effect
  6349.                  s - attempts to change the size of other parts of the
  6350.                      window to accommodate the new border style, without
  6351.                      changing the overall size of the window.
  6352.                  0 - use 'expanded' borders (the default)
  6353.  
  6354.                For the following options, the 'xd', 'yd', 'cornerX', and
  6355.                'cornerY', 'bchr1', and 'bchr2' parameters are ignored,
  6356.                and the horizontal and vertical border thickness is
  6357.                always 1:
  6358.  
  6359.                  1 - single line
  6360.                  2 - double horizontal
  6361.                  3 - double vertical
  6362.                  4 - double line
  6363.                  5 - solid
  6364.                  6 - blank
  6365.  
  6366.                Specifying no options or parameters removes any existing
  6367.                borders.
  6368.  
  6369.   returns:     nothing
  6370.   see also:    getborder, setframe, setshadow
  6371.  
  6372.   example:     setborder
  6373.                  // removes the border
  6374.                setborder "1i"
  6375.                  // sets the border style to a single-line border with
  6376.                  //   an inward 3D effect
  6377.                setborder '0' 2 2 3 3
  6378.                  // sets the border style to an 'expanded' border with
  6379.                  //   border width 2 and corner size 3
  6380.  
  6381.  
  6382.   setcolor     component color window
  6383.   ──────────────────────────────────────────────────────────────────────
  6384.   remarks:     Changes the color attribute of a window component. If
  6385.                'window' is not specified, the current window is assumed.
  6386.  
  6387.                The following values can be specified for 'component':
  6388.  
  6389.                 0 - border
  6390.                 1 - border corners
  6391.                 2 - north and east titles
  6392.                 3 - south and west titles
  6393.                 4 - title bar controls
  6394.                 5 - text
  6395.                 6 - marks
  6396.                 7 - scroll bars
  6397.                 8 - menus
  6398.                 9 - menu character highlight
  6399.                10 - menu disable
  6400.                11 - menu bar highlight
  6401.                12 - end-of-text line
  6402.                13 - border highlight color
  6403.                14 - folds
  6404.                15 - modified lines
  6405.                16 - modified line at the cursor
  6406.                17 - open fold begin
  6407.                18 - open fold end
  6408.  
  6409.   returns:     nothing
  6410.   see also:    getcolor
  6411.  
  6412.   example:     setcolor 5 95
  6413.                  // sets the window text color to white on magenta
  6414.                setcolor 6 32
  6415.                  // sets the mark default color to black on green
  6416.  
  6417.  
  6418.   setcursor    opt=[rhiv+-] cursor buffer
  6419.   ──────────────────────────────────────────────────────────────────────
  6420.   remarks:     Creates a new cursor or changes the state of an existing
  6421.                cursor. If 'buffer' is null or not specified, then the
  6422.                current buffer is assumed. If 'cursor' is not specified,
  6423.                the current cursor is assumed.
  6424.  
  6425.                If 'cursor' refers to an existing cursor, it is modified
  6426.                according to the options specified, otherwise a new
  6427.                cursor is created. If a new cursor is created, it becomes
  6428.                the current cursor.
  6429.  
  6430.                Any of the following options may be specified:
  6431.  
  6432.                  i - cursor is in insert mode
  6433.                  h - cursor is hidden
  6434.                  v - blinking hardware cursor indicates position
  6435.                  - - turns off any specified options
  6436.                  + - turns on any specified options
  6437.  
  6438.   returns:     The cursorid if a cursor is created, or TRUE if an
  6439.                existing cursor is modified successfully, otherwise null.
  6440.   see also:    cursor?, destroycursor
  6441.  
  6442.  
  6443.   setdisplay   [0/1]
  6444.   ──────────────────────────────────────────────────────────────────────
  6445.   remarks:     Enables (1) or disables (0) updating of the display. Note
  6446.                that any operations involving window sizing, movement, or
  6447.                reordering will still update the display, even if the
  6448.                display is disabled with this function.
  6449.  
  6450.   returns:     nothing
  6451.   see also:    display
  6452.  
  6453.   example:     setdisplay OFF
  6454.                  // disable the display for faster key macro execution
  6455.                playkey
  6456.                  // play the scrap key macro
  6457.                setdisplay ON
  6458.                  // enable the display
  6459.  
  6460.  
  6461.   setdraw      opt=[01234] window                               [Lib][a]
  6462.   ──────────────────────────────────────────────────────────────────────
  6463.   remarks:     Changes the line drawing style for an edit window. If
  6464.                'window' is not specified, the current window is assumed.
  6465.                One of the following options can be specified:
  6466.  
  6467.                  0 - single lines
  6468.                  1 - double horizontal lines
  6469.                  2 - double vertical lines
  6470.                  3 - double horizontal and vertical lines
  6471.                  4 - eraser
  6472.  
  6473.   returns:     nothing
  6474.   see also:    setting
  6475.  
  6476.   example:     setdraw 3
  6477.                  // sets the line drawing style to double horizontal
  6478.                  //   and vertical lines
  6479.  
  6480.  
  6481.   setframe     opt=[bwneshvm2345z>+-]  window westwidth eastwidth
  6482.                menuwidth
  6483.   ──────────────────────────────────────────────────────────────────────
  6484.   remarks:     Adds or removes window frame components. If 'window' is
  6485.                not specified, the current window is assumed.
  6486.  
  6487.                Any of the following options can be specified:
  6488.  
  6489.                  + - add specified components to the window
  6490.                  - - remove specified components from the window
  6491.  
  6492.                  (if neither '+' or '-' are specified, then the window
  6493.                   frame components are replaced)
  6494.  
  6495.                  b - border
  6496.                  e - east title bar
  6497.                  h - horizontal scroll bar
  6498.                  m - primary menu bar
  6499.                  n - north title bar
  6500.                  s - south title bar
  6501.                  v - vertical scroll bar
  6502.                  w - west title bar
  6503.                  z - south title controls
  6504.                  2 - menu bar 2 (north)
  6505.                  3 - menu bar 3 (north)
  6506.                  4 - menu bar 4 (south)
  6507.                  5 - menu bar 5 (west)
  6508.                  > - place north title bar in the window border
  6509.  
  6510.                Specifying no options will remove all window frame
  6511.                components.
  6512.  
  6513.                The following parameters can also be specified:
  6514.  
  6515.                  westwidth - the width of the west title, if present
  6516.                  eastwidth - the width of the east title, if present
  6517.                  menuwidth - the width of the west menu bar, if present
  6518.  
  6519.   returns:     nothing
  6520.   see also:    frame?, setborder, setshadow
  6521.  
  6522.   example:     setframe
  6523.                  // removes all frame components from the current window
  6524.                setframe "bn"
  6525.                  // replaces the current window frame components with
  6526.                  //   a border and a north title bar
  6527.                setframe "+s"
  6528.                  // adds a south title bar to the current window
  6529.  
  6530.  
  6531.   setname      filename                                      [Lib][edit]
  6532.   ──────────────────────────────────────────────────────────────────────
  6533.   remarks:     Changes the buffer name in the current edit window to the
  6534.                specified filename. The primary window title (title 1) is
  6535.                also changed.
  6536.   returns:     1 if successful, -1 if the filename is invalid, or -2 if
  6537.                the filename is already loaded.
  6538.   see also:    close, open, save, setbufname, settitle
  6539.  
  6540.  
  6541.   setnextwin   nextwindow window
  6542.   ──────────────────────────────────────────────────────────────────────
  6543.   remarks:     Changes the order of windows on the screen by placing
  6544.                'nextwindow' on top of 'window'. If 'window' is not
  6545.                specified, the current window is assumed.
  6546.   returns:     Non-zero if successful, otherwise null.
  6547.   see also:    getnextwin, getprevwin, setprevwin
  6548.  
  6549.  
  6550.   setpalette   position charstring
  6551.   ──────────────────────────────────────────────────────────────────────
  6552.   remarks:     Fills a 100-byte user-defined color palette area with
  6553.                'charstring', starting at the specified position in the
  6554.                palette. The editor library code (LIB.X) expects color
  6555.                attributes to be in the positions defined in COLOR.AML.
  6556.   returns:     nothing
  6557.   see also:    getpalatte
  6558.   example:     see COLOR.AML
  6559.  
  6560.  
  6561.   setparent    parent window
  6562.   ──────────────────────────────────────────────────────────────────────
  6563.   remarks:     Makes 'parent' the parent window of 'window'. If 'window'
  6564.                is not specified, the current window is assumed.
  6565.   returns:     Non-zero if successful, otherwise null.
  6566.   see also:    getparent
  6567.  
  6568.  
  6569.   setprevwin   prevwindow window
  6570.   ──────────────────────────────────────────────────────────────────────
  6571.   remarks:     Changes the order of windows on the screen by placing
  6572.                'window' on top of 'prevwindow'. If 'window' is not
  6573.                specified, the current window is assumed.
  6574.   returns:     Non-zero if successful, otherwise null.
  6575.   see also:    getnextwin, getprevwin, setnextwin
  6576.  
  6577.  
  6578.   setrepeat    timerid milliseconds object function arg1 arg2 ...
  6579.   ──────────────────────────────────────────────────────────────────────
  6580.   remarks:     Sets a timer to call 'function' automatically at regular
  6581.                intervals. 'milliseconds' specifies the time interval in
  6582.                milliseconds. The first function call will occur after
  6583.                the specified time interval has expired (not after the
  6584.                'setrepeat' call).
  6585.  
  6586.                The function is called in the specified object, passing
  6587.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  6588.                is not specified, the current event object is assumed.
  6589.  
  6590.                'timerid' uniquely identifies the timer. If a timerid is
  6591.                not specified, a unique timerid is generated. A maximum
  6592.                of 16 timerid's may be active at one time.
  6593.  
  6594.   returns:     The timerid if successful, otherwise null.
  6595.   see also:    destroytimer, setalarm, settimer, timer?
  6596.  
  6597.   example:     setrepeat "xyz" 1000 '' "abc"
  6598.                  // sets timerid 'xyz' to call the function 'abc' every
  6599.                  //   second in the current event object
  6600.                setrepeat "t1" 0 '' "idle"
  6601.                  // sets timerid 't1' to call the function 'idle'
  6602.                  //   repeatedly in the current event object whenever
  6603.                  //   the editor is idle
  6604.  
  6605.  
  6606.   setshadow    right bottom window
  6607.   ──────────────────────────────────────────────────────────────────────
  6608.   remarks:     Adds or removes window shadows. If 'window' is not
  6609.                specified, the current window is assumed.
  6610.  
  6611.                'bottom' and 'right' specify the shadow thickness on the
  6612.                bottom and right borders. If 'bottom' and 'right' are
  6613.                zero or null, the shadow is removed.
  6614.  
  6615.   returns:     nothing
  6616.   see also:    setborder, setframe, setshadow2
  6617.  
  6618.   example:     setshadow
  6619.                  // removes any shadows from the current window
  6620.                setshadow 2 1
  6621.                  // sets the shadow thickness to 2 on the right border
  6622.                  //   and 1 on the bottom border
  6623.  
  6624.  
  6625.   setshadow2   color window
  6626.   ──────────────────────────────────────────────────────────────────────
  6627.   remarks:     Adds or removes a one-half width shadow. If 'window' is
  6628.                not specified, the current window is assumed. 'color'
  6629.                specifies the shadow color.
  6630.  
  6631.                This function is intended for use with stationary windows
  6632.                on a blank background (such as dialog box controls).
  6633.  
  6634.   returns:     nothing
  6635.   see also:    setshadow
  6636.  
  6637.  
  6638.   setsyntax    [0/1] object window
  6639.   ──────────────────────────────────────────────────────────────────────
  6640.   remarks:     Enables (1) or disables (0) syntax highlighting for a
  6641.                window. If 'window' is not specified, the current window
  6642.                is assumed. Specifying 'object' will change the syntax
  6643.                highlighting object associated with the window.
  6644.   returns:     nothing
  6645.   see also:    keyword, setsyntax
  6646.  
  6647.  
  6648.   settimer     timerid milliseconds object function arg1 arg2 ...
  6649.   ──────────────────────────────────────────────────────────────────────
  6650.   remarks:     Sets a timer to call 'function' automatically after a
  6651.                specified time interval. 'milliseconds' specifies the
  6652.                time interval in milliseconds. The timer is automatically
  6653.                destroyed when the function is called.
  6654.  
  6655.                The function is called in the specified object, passing
  6656.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  6657.                is not specified, the current event object is assumed.
  6658.  
  6659.                'timerid' uniquely identifies the timer. If a timerid is
  6660.                not specified, a unique timerid is generated. A maximum
  6661.                of 16 timerid's may be active at one time.
  6662.  
  6663.   returns:     The timerid if successful, otherwise null.
  6664.   see also:    destroytimer, setalarm, setrepeat, timer?
  6665.  
  6666.   example:     settimer "xyz" 1000 '' "abc"
  6667.                  // sets timerid 'xyz' to call the function 'abc' one
  6668.                  //   second later in the current event object
  6669.  
  6670.  
  6671.   setting      settings [0/1/2/-1]                           [Lib][edit]
  6672.   ──────────────────────────────────────────────────────────────────────
  6673.   remarks:     Changes or toggles the specified window settings. Any
  6674.                combination of the following settings may be specified:
  6675.  
  6676.                  a - Autoindent
  6677.                  b - Backup
  6678.                  d - Draw Mode
  6679.                  i - Insert Mode
  6680.                  l - Live Word Wrap
  6681.                  m - Match Character
  6682.                  s - Smart tabs
  6683.                  t - Translate
  6684.                  u - Undo enabled
  6685.                  v - Variable tabs
  6686.                  w - Word Wrap (standard)
  6687.                  x - Syntax Highlighting
  6688.  
  6689.                After the 'settings' parameter, one of the following
  6690.                values can be specified:
  6691.  
  6692.                  0 - turns specified settings OFF
  6693.                  1 - turns specified settings ON
  6694.                 -1 - toggles specified settings
  6695.                  2 - sets specified settings to default values
  6696.  
  6697.   returns:     nothing
  6698.   see also:    getsettings, setting?
  6699.  
  6700.   example:     settings "abu" 1
  6701.                  // turns ON autoindent, backup, and undo
  6702.                settings "xd" 0
  6703.                  // turns OFF syntax highlighting and drawmode
  6704.                settings "w" -1
  6705.                  // toggles word wrap
  6706.  
  6707.  
  6708.   setting?     settings                                       [Lib][mon]
  6709.   ──────────────────────────────────────────────────────────────────────
  6710.   remarks:     Tests if any of the specified window settings are ON. See
  6711.                the 'setting' command for a description of window
  6712.                settings.
  6713.  
  6714.   returns:     Non-zero if one of the specified settings is ON,
  6715.                otherwise null.
  6716.  
  6717.   see also:    getsettings, setting
  6718.  
  6719.   example:     setting? "lw"
  6720.                  // tests if word wrap or live word wrap are ON
  6721.  
  6722.  
  6723.   settitle     string opt=[nsewlcrdxh1z] titleid[1-5] window
  6724.   ──────────────────────────────────────────────────────────────────────
  6725.   remarks:     Changes a window title. If 'window' is null or not
  6726.                specified, then the current window is assumed.
  6727.  
  6728.                Each window can have up to 5 titles. 'titleid' (1-5)
  6729.                specifies which window title to change. If the 'titleid'
  6730.                is null or not specified, then 1 (the primary title) is
  6731.                assumed.
  6732.  
  6733.                Any combination of the following options can be
  6734.                specified:
  6735.  
  6736.                  e - places the title on east title bar
  6737.                  n - places the title on north title bar
  6738.                  s - places the title on south title bar
  6739.                  w - places the title on west title bar
  6740.  
  6741.                  l - left justifies the title
  6742.                  c - centers the title
  6743.                  r - right justifies the title
  6744.  
  6745.                  d - redraws the window title immediately after this
  6746.                      function call
  6747.  
  6748.                  x - sets the title to the 'default status line'. The
  6749.                      status line displays information about the buffer
  6750.                      (if any) displayed in the window.
  6751.  
  6752.                  h - checks for the highlight character "&". Specifying
  6753.                      "&" before a character in the title indicates that
  6754.                      the character is to be highlighted.
  6755.  
  6756.                  1 - the title is not padded with spaces. Normally the
  6757.                      title is padded with one space if it is left or
  6758.                      right justified.
  6759.  
  6760.                  z - hides the title. This can be used to associate a
  6761.                      string with a window by storing it as a hidden
  6762.                      window title. This option must also be used to
  6763.                      specify a title for the end-of-text line (see the
  6764.                      'eotstring' function).
  6765.  
  6766.                If no options are specified, and the title has not been
  6767.                previously set, the options 'nl1' are assumed. If the
  6768.                title has been previously set, then the options of the
  6769.                previous title are assumed.
  6770.  
  6771.   returns:     TRUE if successful, otherwise null.
  6772.   see also:    eotstring, gettitle
  6773.  
  6774.   example:     settitle "Hello World"
  6775.                  // sets window title 1 to 'Hello World'
  6776.                settitle "Hello World" "cs" 3
  6777.                  // sets window title 3 to 'Hello World' and
  6778.                  //   centers it on the south title bar
  6779.  
  6780.  
  6781.   setvideo     cols rows color fillstring
  6782.   ──────────────────────────────────────────────────────────────────────
  6783.   remarks:     Changes the video mode and/or sets the background color
  6784.                attribute and background fill string. Either operation
  6785.                can be done separately or simultaneously.
  6786.  
  6787.                When changing the video mode, 'cols' must be 40 or 80 and
  6788.                'rows' must be 12, 14, 21, 25, 28, 43, or 50. If 'cols'
  6789.                or 'rows' are zero or null, the video mode is not
  6790.                changed.
  6791.  
  6792.                Specifying either 'color' or 'fillstring' changes the
  6793.                video background. If 'color' is not specified, black (0)
  6794.                is assumed. If 'fillstring' is not specified, blanks are
  6795.                assumed. The maximum size of 'fillstring' is 50
  6796.                characters.
  6797.  
  6798.   returns:     TRUE if successful, otherwise null.
  6799.   see also:    videomode, writebak
  6800.  
  6801.  
  6802.   setwinctrl   controlstring rightcontrol window
  6803.   ──────────────────────────────────────────────────────────────────────
  6804.   remarks:     Changes the one-character title bar controls for a
  6805.                window. If 'window' is not specified, the current window
  6806.                is assumed. Controls are normally placed on the north
  6807.                title bar unless south title bar controls are specified
  6808.                with the 'setframe' function.
  6809.  
  6810.                'controlstring' is a string of the one-character title
  6811.                bar controls to appear on the title bar from left to
  6812.                right.
  6813.  
  6814.                By default, controls are left justified on the title bar.
  6815.                If specified, 'rightcontrol' defines the character
  6816.                position in 'controlstring' of the first right justified
  6817.                control.
  6818.  
  6819.   returns:     TRUE if successful, otherwise null.
  6820.   see also:    getwinctrl
  6821.  
  6822.   example:     setwinctrl ""
  6823.                  // places one left justified control () on the
  6824.                  //   title bar
  6825.                setwinctrl "≡" 2
  6826.                  // places 3 controls on the title bar. (≡) is
  6827.                  //   left justified, () and () are right justified
  6828.  
  6829.  
  6830.   setwincurs   cursor window
  6831.   ──────────────────────────────────────────────────────────────────────
  6832.   remarks:     Attaches a cursor to a window and associates a buffer
  6833.                with a window. If 'window' is not specified, the current
  6834.                window is assumed. When a cursor is attached to a window,
  6835.                the window will display the buffer associated with the
  6836.                cursor.
  6837.  
  6838.                If 'cursor' is null or not specified, then the cursor is
  6839.                detached from the window and the window will no longer
  6840.                display a buffer.
  6841.  
  6842.                Only one cursor may be associated with a window at one
  6843.                time. Windows that do not display a buffer do not need to
  6844.                use this call.
  6845.  
  6846.   returns:     TRUE if successful, otherwise null.
  6847.   see also:    getwincurs
  6848.  
  6849.  
  6850.   setwinobj    object window
  6851.   ──────────────────────────────────────────────────────────────────────
  6852.   remarks:     Sets the window event object associated with a window. If
  6853.                'window' is not specified, the current window is assumed.
  6854.                This function also changes the current event object to
  6855.                'object'.
  6856.  
  6857.                Whenever a window becomes the current window, the current
  6858.                event object is set to the window event object. This
  6859.                allows an object 'class' to be associated with an
  6860.                individual window.
  6861.  
  6862.   returns:     nothing
  6863.   see also:    eventobject, getwinobj
  6864.  
  6865.   example:     setwinobj "edit"
  6866.                  // sets the event object for the current window to
  6867.                  //   'edit', and also changes the current event object
  6868.                  //   to 'edit'
  6869.  
  6870.  
  6871.   shiftblock   (+/-)cols  mark fillchar
  6872.   ──────────────────────────────────────────────────────────────────────
  6873.   remarks:     Shifts marked text to the left or to the right. If 'mark'
  6874.                is not specified, the default markid is assumed.
  6875.  
  6876.                'cols' specifies the number of columns to shift. Positive
  6877.                values shift text to the right and negative values shift
  6878.                text to the left.
  6879.  
  6880.                'fillchar' is the character to use when filling empty
  6881.                spaces created by shifting to the right. If 'fillchar' is
  6882.                not specified, blanks (ASCII 32) are assumed.
  6883.  
  6884.   returns:     TRUE if successful, otherwise null.
  6885.   see also:    delchar, instext
  6886.  
  6887.   example:     shiftblock -1
  6888.                  // shifts the text in default markid one space to the
  6889.                  //   left
  6890.                shiftblock  1 '' '>'
  6891.                  // shifts the text in the default markid one space to
  6892.                  //   the right, filling empty spaces with '>'
  6893.  
  6894.  
  6895.   shiftkey?    shiftstate
  6896.   ──────────────────────────────────────────────────────────────────────
  6897.   remarks:     Tests if the specified shift key(s) are currently pressed
  6898.                down. 'shiftstate' can be any combination of the
  6899.                following values OR'ed together bitwise:
  6900.  
  6901.                  01h - right shift key down   10h - scroll lock ON
  6902.                  02h - left shift key down    20h - num lock ON
  6903.                  04h - ctrl key down          40h - caps lock ON
  6904.                  08h - alt key down           80h - insert ON
  6905.  
  6906.                If shiftstate is not specified, then a value of 03h
  6907.                (right and left shift keys) is assumed.
  6908.  
  6909.   returns:     Non-zero if the specified shift keys are down, otherwise
  6910.                zero.
  6911.  
  6912.   see also:    event?, keyhit?
  6913.  
  6914.   example:     shiftkey?
  6915.                  // tests if the left or right shift keys are pressed
  6916.                shiftkey? 12h
  6917.                  // tests if the <ctrl> or <alt> keys are pressed
  6918.  
  6919.  
  6920.   sizekey                                                     [Lib][win]
  6921.   ──────────────────────────────────────────────────────────────────────
  6922.   remarks:     Resizes the current window using the cursor keys.
  6923.   returns:     nothing
  6924.   see also:    pankey, sizewin
  6925.  
  6926.  
  6927.   sizewin      l t r b reps opt=[acdrswz1] window             [Lib][win]
  6928.   ──────────────────────────────────────────────────────────────────────
  6929.   remarks:     Resizes the specified window. If 'window' is not
  6930.                specified, the current window is assumed.
  6931.  
  6932.                This function is nearly identical to the 'sizewindow'
  6933.                builtin function, except that the window title bar
  6934.                controls are set properly after resizing, and 'reps'
  6935.                (sizing repetitions) can be specified.
  6936.  
  6937.   returns:     nothing
  6938.   see also:    movewindow, sizewindow
  6939.  
  6940.  
  6941.   sizewindow   l t r b opt=[acdrswz1] window relativewindow
  6942.   ──────────────────────────────────────────────────────────────────────
  6943.   remarks:     Changes the size and position of a window. If 'window' is
  6944.                not specified, the current window is assumed. When a
  6945.                window is resized, all parts of the window are redrawn
  6946.                immediately.
  6947.  
  6948.                'l', 't', 'r', and 'b' specify the new window
  6949.                coordinates. The following options can be specified:
  6950.  
  6951.                a - The coordinates are absolute and are relative to an
  6952.                    'origin'. The location of the origin depends on which
  6953.                    of the following options are also specified:
  6954.  
  6955.                    d - the origin is located at the top left corner of
  6956.                        the physical screen
  6957.                    w - the origin is located at the top left corner of
  6958.                        the window 'relativewindow'
  6959.                    1 - the origin is located at the top left corner of
  6960.                        the client area of the window 'relativewindow'
  6961.                    z - the origin is located at the virtual coordinates
  6962.                        (0,0)
  6963.  
  6964.                    If option 'a' is specified and none of the above
  6965.                    options are specified, then 'd' is assumed.
  6966.  
  6967.                r - the coordinates are relative to another rectangle on
  6968.                    the screen. 'l', 't', 'r', and 'b' specify relative
  6969.                    offsets from the left, top, right, and bottom edges
  6970.                    of the rectangle. The location of the rectangle
  6971.                    depends on which of the following options are also
  6972.                    specified:
  6973.  
  6974.                    d - the rectangle is the physical screen
  6975.                    w - the rectangle is the main window area of the
  6976.                        window 'relativewindow'
  6977.                    1 - the rectangle is the client area of the window
  6978.                        'relativewindow'
  6979.                    z - the rectangle is the main window area of the
  6980.                        window being resized (relative to itself, in
  6981.                        other words)
  6982.  
  6983.                    If option 'r' is specified and none of the above
  6984.                    options are specified, then 'z' is assumed.
  6985.  
  6986.                c - the coordinates specify the size of the client area
  6987.                    of the window being sized, not the entire window.
  6988.  
  6989.                s - scrolls the window to keep the cursor visible, if
  6990.                    needed
  6991.  
  6992.                If no options are specified, options 'rz' are assumed.
  6993.  
  6994.   returns:     TRUE if successful, otherwise null.
  6995.   see also:    getcoord, movewindow
  6996.  
  6997.   example:     sizewindow -1 -1 1 1
  6998.                  // expands the current window size by 1 in all four
  6999.                  //   directions
  7000.                sizewindow 0 0 0 0 "rd"
  7001.                  // sizes the current window to fill the entire screen
  7002.                  //  with all the borders visible
  7003.                sizewindow 6 5 72 20 "ad"
  7004.                  // sizes the current window relative to the upper
  7005.                  //  left corner of the screen
  7006.                sizewindow 6 5 72 20 "a1" '' "abc"
  7007.                  // sizes the current window relative to the upper
  7008.                  //  left corner of the client area of window 'abc'
  7009.  
  7010.  
  7011.   shortbox     message title opt=[b]                            [Lib][a]
  7012.   ──────────────────────────────────────────────────────────────────────
  7013.   remarks:     Displays the specified message in a popup window without
  7014.                an 'Ok' button. If a title is not specified, 'Message' is
  7015.                assumed. If option 'b' is specified, the PC speaker
  7016.                beeps.
  7017.  
  7018.   returns:     nothing
  7019.   see also:    msgbox, okbox, say, yncbox
  7020.  
  7021.   example:     shortbox "This is a message with a beep!" 'b'
  7022.  
  7023.  
  7024.   showcursor   top bottom
  7025.   ──────────────────────────────────────────────────────────────────────
  7026.   remarks:     Shows the physical cursor in the current window. If the
  7027.                current window contains a buffer, the effects of
  7028.                this function are temporary and may disappear the next
  7029.                time the display is updated.
  7030.  
  7031.                If 'top' and 'bottom' are specified, the physical cursor
  7032.                size is changed. 'top' and 'bottom' indicate the distance
  7033.                of the top and bottom of the cursor from the top of the
  7034.                character cell, on a scale of 0 to 99.
  7035.  
  7036.   returns:     nothing
  7037.   see also:    hidecursor
  7038.  
  7039.   example:     showcursor 0 99
  7040.                  // sets the cursor size to fill the entire char cell
  7041.                showcursor 50 99
  7042.                  // sets the cursor size to fill the bottom half of
  7043.                  //   the character cell
  7044.  
  7045.  
  7046.   showentry 
  7047.   ──────────────────────────────────────────────────────────────────────
  7048.   remarks:     Temporarily displays the screen as it appeared in DOS
  7049.                immediately before the editor was started. Pressing any
  7050.                key or mouse button will restore the editor screen.
  7051.   returns:     nothing
  7052.   see also:    display
  7053.  
  7054.  
  7055.   showmouse 
  7056.   ──────────────────────────────────────────────────────────────────────
  7057.   remarks:     Shows the mouse pointer.
  7058.   returns:     nothing
  7059.   see also:    hidemouse
  7060.  
  7061.  
  7062.   showwindow   window
  7063.   ──────────────────────────────────────────────────────────────────────
  7064.   remarks:     Re-displays a window that was previously hidden with the
  7065.                'hidewindow' function. If 'window' is null or not
  7066.                specified, then the current window is assumed.
  7067.   returns:     nothing
  7068.   see also:    hidewindow
  7069.  
  7070.  
  7071.   sizeof       string
  7072.   ──────────────────────────────────────────────────────────────────────
  7073.   remarks:     Gets the size of a string in bytes.
  7074.   returns:     the number of characters in the string.
  7075.   see also:    copystr, pad
  7076.  
  7077.   example:     sizeof "apples"                // returns 6
  7078.                sizeof ''                      // returns 0
  7079.                sizeof "ab" + "bc"             // returns 4
  7080.                sizeof 50 + 51                 // returns 3
  7081.  
  7082.  
  7083.   sizequeue    size
  7084.   ──────────────────────────────────────────────────────────────────────
  7085.   remarks:     Removes all events from the event queue and changes the
  7086.                event queue size to 'size' events. Values of 5 through
  7087.                200 may be specified. The default queue size is 20 when
  7088.                the editor is started.
  7089.   returns:     Non-zero if successful, otherwise zero.
  7090.   see also:    dispatch, process
  7091.  
  7092.  
  7093.   sortblock    opt=[di] mark
  7094.   ──────────────────────────────────────────────────────────────────────
  7095.   remarks:     Sorts marked lines. If 'mark' is not specified, the
  7096.                default markid is assumed.
  7097.  
  7098.                For column marks, the text between the left and right
  7099.                edges of the mark is used as the sort key. For all other
  7100.                marks, the entire line is used as the sort key. In either
  7101.                case, all lines spanned by the mark are sorted, not just
  7102.                the text within the mark.
  7103.  
  7104.                One of the following options may be specified:
  7105.  
  7106.                  d - sort in descending order
  7107.                  i - ignore case when sorting
  7108.  
  7109.   returns:     TRUE if successful, otherwise null.
  7110.  
  7111.  
  7112.   speaker      [0/1]
  7113.   ──────────────────────────────────────────────────────────────────────
  7114.   remarks:     Enables (1) or disables (0) sound from the PC speaker.
  7115.   returns:     nothing
  7116.   see also:    beep
  7117.  
  7118.  
  7119.   splitline    col row buffer
  7120.   ──────────────────────────────────────────────────────────────────────
  7121.   remarks:     Splits one line into two lines in a buffer. If 'buffer'
  7122.                is null or not specified, then the current buffer is
  7123.                assumed.
  7124.  
  7125.                'row' specifies which line is to be split and 'col'
  7126.                specifies the column where the split is to occur. If
  7127.                'row' and 'col' are not specified, the current cursor
  7128.                position is assumed.
  7129.  
  7130.                All characters after, and including the specified column
  7131.                are moved to column 1 in a new line after the line to be
  7132.                split.
  7133.  
  7134.   returns:     TRUE if successful, otherwise null.
  7135.   see also:    delline, insabove, insline, joinline
  7136.  
  7137.   example:     splitline
  7138.                  // splits the current line at the cursor in the
  7139.                  //   current buffer
  7140.                splitline 10
  7141.                  // splits the current line at column 10
  7142.  
  7143.  
  7144.   splitstr     delimit+quote multistring ref1 ref2 ...
  7145.   ──────────────────────────────────────────────────────────────────────
  7146.   remarks:     Splits an editor 'multistring' (created by the 'joinstr'
  7147.                function) into individual strings. The 'delimit' and
  7148.                'quote' characters are used as delimiters and literal
  7149.                quoting characters to separate the string (see 'joinstr'
  7150.                above).
  7151.  
  7152.                If 'delimit' and 'quote' are not specified, then the
  7153.                default delimiter character is a slash (/) and the
  7154.                default quote character is a backquote (`).
  7155.  
  7156.                'ref1', 'ref2', etc. refer to variables passed by
  7157.                reference which are to contain the resulting component
  7158.                strings (see the 'ref' keyword).
  7159.  
  7160.   returns:     This function returns the number of component strings in
  7161.                the multistring.  The actual component strings are
  7162.                returned in variables passed by reference to this
  7163.                function.
  7164.  
  7165.   see also:    joinstr, ref
  7166.  
  7167.   example:     splitstr '' "abc/def/xyz" ref a ref b ref c
  7168.                  // returns 'abc' in a, 'def' in b, and 'xyz' in c.
  7169.                  // the entire function call returns '3'
  7170.  
  7171.                splitstr "|\\" "abc|x\|yz" ref a ref b
  7172.                  // returns 'abc' in a, and 'x|yz' in b.
  7173.                  // the entire function call returns '2'
  7174.  
  7175.  
  7176.   splitwin     opt=[hv]                                      [Lib][edit]
  7177.   ──────────────────────────────────────────────────────────────────────
  7178.   remarks:     Splits the current edit window. The following options may
  7179.                be specified:
  7180.  
  7181.                  h - favor horizontal splits
  7182.                  v - favor vertical splits
  7183.  
  7184.   returns:     TRUE if successful, otherwise null.
  7185.   see also:    copywin
  7186.  
  7187.  
  7188.   stopmark     mark
  7189.   ──────────────────────────────────────────────────────────────────────
  7190.   remarks:     Closes an 'open' mark created with the markline,
  7191.                markcolumn, markchar, or markstream functions. This stops
  7192.                the automatic extension of the mark when the cursor is
  7193.                moved. If 'mark' is not specified, the default markid is
  7194.                assumed.
  7195.  
  7196.   returns:     nothing
  7197.   see also:    extendmark, markchar, markcolumn, markline, markstream
  7198.  
  7199.   example:     markline   // marks the current line
  7200.                stopmark   // stop cursor extension of the mark
  7201.  
  7202.  
  7203.   sub          searchstr replacestr string opt=[irwx]
  7204.   ──────────────────────────────────────────────────────────────────────
  7205.   remarks:     Replaces all occurrences of 'searchstr' found in 'string'
  7206.                with 'replacestr'. Any of the following search options
  7207.                may be specified:
  7208.  
  7209.                  i - ignore case
  7210.                  r - search in reverse from the end of the string
  7211.                  w - whole words only
  7212.                  x - use regular expressions (see 'Regular Expression
  7213.                      Searching')
  7214.  
  7215.                Specifying a null replace string will remove all
  7216.                occurrences of 'searchstr' within 'string'.
  7217.  
  7218.   returns:     The new string resulting from the substitution of
  7219.                'replacestr' for all occurrences of the search string.
  7220.  
  7221.   see also:    pos, poschar, posnot
  7222.  
  7223.   example:     sub 'p' '112' "apples"      // returns 'a112112les'
  7224.                sub 'es' 'y' "apples"       // returns 'apply'
  7225.                sub 'PL' '' "apples" 'i'    // returns 'apes'
  7226.  
  7227.  
  7228.   submenu      menuname                                         [Lib][a]
  7229.   ──────────────────────────────────────────────────────────────────────
  7230.   remarks:     Displays the specified menu as a submenu. This function
  7231.                is only intended for use within a pulldown menu.
  7232.   returns:     nothing
  7233.   see also:    getmenu, gotomenu, menu
  7234.  
  7235.  
  7236.   swapfiles    swapfile1 swapfile2 swapfile3
  7237.   ──────────────────────────────────────────────────────────────────────
  7238.   remarks:     Defines swap files for the editor to use in low memory
  7239.                situations. If available, EMS and XMS memory will always
  7240.                be used before the swap files are created.
  7241.  
  7242.                'swapfile2' will only be used when there is no room on
  7243.                the drive containing 'swapfile1', and 'swapfile3' will
  7244.                only be used when there is no room on the drive
  7245.                containing 'swapfile2'. All swap files should be on
  7246.                different drives.
  7247.  
  7248.                Note: this function may only be called once during an
  7249.                edit session.
  7250.  
  7251.   returns:     TRUE if successful, otherwise null.
  7252.   see also:    maxems, maxxms, memoptions
  7253.  
  7254.  
  7255.   syntax       opt=[bcin] symbols stringchars stringlit numeric
  7256.                eolcom1 startcol1 eolcom2 startcol2 opencom1 closecom1
  7257.                opencom2 closecom2 backscan keywordcolor symbolcolor
  7258.                stringcolor numericcolor eolcomment1color
  7259.                eolcomment2color comment1color comment2color
  7260.   ──────────────────────────────────────────────────────────────────────
  7261.   remarks:     Defines a syntax highlighting template for the current
  7262.                (executing) object. A syntax highlighting template can be
  7263.                customized to highlight the source code of almost any
  7264.                programming language, or even text files.
  7265.  
  7266.                Any of the following syntax highlighting options can be
  7267.                specified:
  7268.  
  7269.                  b - highlighting shows through marked blocks
  7270.                  c - disable highlighting on the line at the cursor
  7271.                  f - use only the foreground portion of the specified
  7272.                      colors, and use the existing background color of
  7273.                      the window
  7274.                  i - ignore keyword case
  7275.                  n - automatically highlight numbers
  7276.  
  7277.                The following parameters can also be specified:
  7278.  
  7279.                symbols      - defines a set of one-character language
  7280.                               symbols to be highlighted. A maximum of 40
  7281.                               symbols can be specified.
  7282.  
  7283.                stringchars  - defines up to 3 one-character string
  7284.                               symbols used to enclose highlighted
  7285.                               character strings.
  7286.  
  7287.                stringlit    - the character used to indicate a literal
  7288.                               character in a character string.
  7289.  
  7290.                numeric      - the character (if any) used to indicate a
  7291.                               numeric value.
  7292.  
  7293.                eolcom1      - single line comment symbol 1 (10 char max)
  7294.                startcol1    - the required start column for 'eolcom1'.
  7295.                               If not specified, all columns are checked.
  7296.  
  7297.                eolcom2      - single line comment symbol 2 (10 char max)
  7298.                startcol2    - the required start column for 'eolcom2'.
  7299.                               If not specified, all columns all checked.
  7300.  
  7301.                opencom1     - the start symbol for multiline comment 1
  7302.                               (10 char max)
  7303.                closecom1    - the end symbol for multiline comment 1
  7304.                               (10 char max)
  7305.  
  7306.                opencom2     - the start symbol for multiline comment 2
  7307.                               (10 char max)
  7308.                closecom2    - the end symbol for multiline comment 2
  7309.                               (10 char max)
  7310.  
  7311.                backscan     - the number of lines to scan backwards to
  7312.                               check if a multiline comment is in effect
  7313.                               (400 line max)
  7314.  
  7315.                The following syntax highlighting colors may also be
  7316.                specified:
  7317.  
  7318.                keywordcolor
  7319.                symbolcolor
  7320.                stringcolor
  7321.                numericcolor
  7322.                eolcom1color
  7323.                eolcom2color
  7324.                comment1color
  7325.                comment2color
  7326.  
  7327.                If option 'f' is specified, and the window foreground
  7328.                color is equal to the foreground portion (lower 4 bits)
  7329.                of any of the above colors, then the background portions
  7330.                (upper 4 bits) of these colors are used as alternate
  7331.                foreground colors. This allows you to change the window
  7332.                color without having to change the syntax highlighting
  7333.                color definitions.
  7334.  
  7335.   returns:     nothing
  7336.   see also:    keyword, setsyntax
  7337.  
  7338.   example:     see the configuration file SYNTAX.AML
  7339.  
  7340.  
  7341.   thousands    number
  7342.   ──────────────────────────────────────────────────────────────────────
  7343.   remarks:     Converts a number into a thousands-separated string. The
  7344.                'international' function determines what thousands
  7345.                separator character is used.
  7346.  
  7347.   returns:     a thousands-separated string.
  7348.   see also:    international
  7349.  
  7350.   example:     thousands 12345678    // returns '12,345,678'
  7351.  
  7352.  
  7353.   tile         opt=[hv]                                       [Lib][win]
  7354.   ──────────────────────────────────────────────────────────────────────
  7355.   remarks:     Tiles all non-minimized windows on the screen. The
  7356.                following options may be specified:
  7357.  
  7358.                  h - favor horizontal tiling
  7359.                  v - favor vertical tiling
  7360.  
  7361.   returns:     nothing
  7362.   see also:    cascade, splitwin
  7363.  
  7364.  
  7365.   tilewindow   opt=[hvlb] splitnum limit window
  7366.   ──────────────────────────────────────────────────────────────────────
  7367.   remarks:     Tiles windows on the screen, or 'splits' a window into
  7368.                tiles. If 'window' is not specified, the current window
  7369.                is assumed.
  7370.  
  7371.                'limit' specifies the maximum number of tiles. If 'limit'
  7372.                is null or zero, then all windows are tiled.
  7373.  
  7374.                'splitnum' specifies the maximum number of tiles that can
  7375.                be oriented in one direction before the next tile is
  7376.                oriented in a perpendicular direction. If 'splitnum' is
  7377.                null or zero, 2 is assumed.
  7378.  
  7379.                The following options can be specified:
  7380.  
  7381.                  b - reverses the tiling order by starting with the
  7382.                      bottom window on the screen
  7383.                  h - favors horizontal splits
  7384.                  l - tile only the specified window and any other
  7385.                      windows which display the same buffer
  7386.                  v - favors vertical splits
  7387.  
  7388.                If no options are specified, then 'h' is assumed.
  7389.  
  7390.   returns:     TRUE if successful, otherwise null.
  7391.   see also:    getcoord, movewindow, sizewindow
  7392.  
  7393.   example:     tilewindow
  7394.                  // tiles all windows horizontally on the screen
  7395.                tilewindow 'lv'
  7396.                  // vertically tiles any windows which display
  7397.                  //   the same buffer as the current window
  7398.  
  7399.  
  7400.   timer?       timerid
  7401.   ──────────────────────────────────────────────────────────────────────
  7402.   remarks:     Tests if the specified timer is active.
  7403.   returns:     TRUE if timerid is active, otherwise null.
  7404.   see also:    destroytimer, setalarm, settimer
  7405.  
  7406.  
  7407.   togglestyle                                                [Lib][edit]
  7408.   ──────────────────────────────────────────────────────────────────────
  7409.   remarks:     Toggles between 12 different edit window styles.
  7410.   returns:     nothing
  7411.   see also:    toolbar
  7412.  
  7413.  
  7414.   toolbar                                                    [Lib][edit]
  7415.   ──────────────────────────────────────────────────────────────────────
  7416.   remarks:     Toggles the display of a toolbar on the current edit
  7417.                window. The toolbar is defined in MENU.AML.
  7418.   returns:     nothing
  7419.   see also:    togglestyle
  7420.  
  7421.  
  7422.   touchfile    filename
  7423.   ──────────────────────────────────────────────────────────────────────
  7424.   remarks:     Changes the last-modified date and time for the specified
  7425.                file to the current date and time.
  7426.   returns:     Non-zero if successful, otherwise zero.
  7427.   see also:    chgfileattr, copyfile
  7428.  
  7429.  
  7430.   trackmouse                                                    [Lib][a]
  7431.   ──────────────────────────────────────────────────────────────────────
  7432.   remarks:     Moves the cursor to the mouse pointer in the current
  7433.                buffer.
  7434.   returns:     nothing
  7435.   see also:    getmousex, getmousey, mousepos, virtocol, virtorow
  7436.  
  7437.  
  7438.   trunc?       buffer
  7439.   ──────────────────────────────────────────────────────────────────────
  7440.   remarks:     Tests if the specified buffer has been truncated when
  7441.                loaded. Truncation can occur if <ctrl break> was pressed
  7442.                while loading the file. If 'buffer' is null or not
  7443.                specified, the current buffer is assumed.
  7444.  
  7445.   returns:     TRUE if the buffer was truncated, otherwise null.
  7446.   see also:    buffer?
  7447.  
  7448.  
  7449.   undo         buffer
  7450.   ──────────────────────────────────────────────────────────────────────
  7451.   remarks:     Reverses the changes made by the last undoable function
  7452.                (or group of functions marked with undobegin - undoend)
  7453.                for a specific buffer. If 'buffer' is null or not
  7454.                specified, then the current buffer is assumed.
  7455.   returns:     TRUE if successful, otherwise null.
  7456.   see also:    redo, undobegin, undoend
  7457.  
  7458.  
  7459.   undobegin 
  7460.   ──────────────────────────────────────────────────────────────────────
  7461.   remarks:     Marks the beginning of a group of function calls which
  7462.                are considered to be one 'undoable/redoable' editing
  7463.                operation. The group is terminated by a matching
  7464.                'undoend' function. 'undobegin' and 'undoend' pairs may
  7465.                be nested.
  7466.  
  7467.                Undo/redo information for all undoable function calls
  7468.                within this group is saved as one undoable operation on
  7469.                the undo/redo stack for each operation's buffer. The
  7470.                follow types of editing functions are undoable:
  7471.  
  7472.                  - functions which modify buffers
  7473.                  - functions which create or modify marks
  7474.                  - functions which create or modify text folds
  7475.  
  7476.                The current cursor position, window size, and window
  7477.                view, are also saved on the undo/redo stack.
  7478.  
  7479.                When the 'undo' or 'redo' functions are called, all
  7480.                undoable editing operations within the group are 'undone'
  7481.                together at one time.
  7482.  
  7483.   returns:     nothing
  7484.   see also:    redo, undo, undocursor, undoend
  7485.  
  7486.   example:     undobegin                // groups 3 editing operations
  7487.                delline                  //   together as one undoable
  7488.                writetext "some text"    //   operation
  7489.                insline "new line"
  7490.                undoend
  7491.  
  7492.  
  7493.   undocursor   buffer
  7494.   ──────────────────────────────────────────────────────────────────────
  7495.   remarks:     Saves the current window size, window view, and cursor
  7496.                position on the undo/redo stack as one undoable
  7497.                operation. If 'buffer' is null or not specified, then the
  7498.                current buffer is assumed.
  7499.   returns:     nothing
  7500.   see also:    redo, undo, undobegin, undoend
  7501.  
  7502.  
  7503.   undoend 
  7504.   ──────────────────────────────────────────────────────────────────────
  7505.   remarks:     Marks the end of a group of undoable/redoable function
  7506.                calls started with the 'undobegin' function (see
  7507.                'undobegin' above).
  7508.   returns:     nothing
  7509.   see also:    redo, undo, undobegin
  7510.  
  7511.  
  7512.   undosize     size buffer
  7513.   ──────────────────────────────────────────────────────────────────────
  7514.   remarks:     Sets the undo/redo stack size for a buffer to 'size'
  7515.                editing operations. If 'buffer' is null or not specified,
  7516.                the current buffer is assumed. Setting the undo/redo
  7517.                stack size to zero disables undo/redo for the specified
  7518.                buffer.
  7519.  
  7520.                The stack size determines the maximum number of undoable
  7521.                editing operations (single or group) that will be saved
  7522.                for each buffer. When an undoable operation is performed
  7523.                and the size limit is exceeded, the undo information for
  7524.                the least-recently performed operation is discarded.
  7525.  
  7526.                When a buffer is initially created, the undo/redo stack
  7527.                size is set to zero (undo is disabled). Whenever the
  7528.                undo/redo stack size is changed with this function, all
  7529.                previous undo/redo information for the buffer is erased.
  7530.  
  7531.   returns:     nothing
  7532.   see also:    redo, undo, undobegin, undoend
  7533.  
  7534.   example:     undosize
  7535.                  // disables undo for the current buffer
  7536.                undosize 200
  7537.                  // deletes the current undo stack and sets the undo
  7538.                  //   stack size for the current buffer to 200
  7539.                  //   editing operations
  7540.  
  7541.  
  7542.   unsetx       varexpression objexpression
  7543.   ──────────────────────────────────────────────────────────────────────
  7544.   remarks:     Destroys the object variable defined by 'varexpression'
  7545.                in the specified object. If 'objexpression' is not
  7546.                specified, then the current object is assumed.
  7547.  
  7548.   returns:     nothing
  7549.   see also:    function?, lookup, set, setobj, setx, setxfun, setxobj
  7550.  
  7551.   example:     unsetx "TempVar"
  7552.                unsetx "Temp" + "Var" "edit"
  7553.  
  7554.  
  7555.   up           rows buffer
  7556.   ──────────────────────────────────────────────────────────────────────
  7557.   remarks:     Moves the cursor upward. 'rows' specifies the number of
  7558.                lines to move. If 'rows' is not specified, 1 is assumed.
  7559.                If 'buffer' is null or not specified, the current buffer
  7560.                is assumed.
  7561.  
  7562.   returns:     TRUE if successful, otherwise null.
  7563.   see also:    down, left, right
  7564.  
  7565.   example:     up         // moves the cursor up 1 row
  7566.                up 5       // moves the cursor up 5 rows
  7567.  
  7568.  
  7569.   upcase       string
  7570.   ──────────────────────────────────────────────────────────────────────
  7571.   remarks:     Converts a string to uppercase.
  7572.   returns:     the string in uppercase.
  7573.   see also:    flipcase, locase
  7574.   example:     upcase "peaches"      // returns "PEACHES"
  7575.  
  7576.  
  7577.   usemark      mark
  7578.   ──────────────────────────────────────────────────────────────────────
  7579.   remarks:     Sets the default markid to 'mark'. If 'mark' is not
  7580.                specified, the markid '*' is assumed. When the editor is
  7581.                started, the default markid is '*'.
  7582.  
  7583.   returns:     nothing
  7584.   see also:    getmarkuse
  7585.  
  7586.   example:     usemark 'T'  // set the default markid to 'T'
  7587.                  .
  7588.                  .
  7589.                usemark      // always set the default markid back to '*'
  7590.  
  7591.  
  7592.   videoborder  color
  7593.   ──────────────────────────────────────────────────────────────────────
  7594.   remarks:     Changes the video overscan border color to the specified
  7595.                color.
  7596.   returns:     nothing
  7597.   see also:    writebak
  7598.  
  7599.  
  7600.   videomode    cols rows                                        [Lib][a]
  7601.   ──────────────────────────────────────────────────────────────────────
  7602.   remarks:     Changes the current video mode to 'cols' x 'rows'. 'cols'
  7603.                must be 40 or 80 and 'rows' must be 12, 14, 21, 25, 28,
  7604.                43, or 50.
  7605.  
  7606.   returns:     nothing
  7607.   see also:    setvideo
  7608.  
  7609.   example:     videomode 80 28    // change the video mode to 80 x 28
  7610.                videomode 80 50    // change the video mode to 80 x 50
  7611.  
  7612.  
  7613.   virtocol     virtualX window
  7614.   ──────────────────────────────────────────────────────────────────────
  7615.   remarks:     Converts a virtual screen X-coordinate to a column in a
  7616.                window. If 'window' is not specified, the current window
  7617.                is assumed. If 'virtualX' is not specified, the current
  7618.                mouse pointer position is assumed.
  7619.  
  7620.   returns:     the window column.
  7621.   see also:    virtorow
  7622.  
  7623.   example:     say (virtocol)
  7624.                  // displays the column in the current window where
  7625.                  //   the mouse pointer is located
  7626.  
  7627.  
  7628.   virtorow     virtualY window
  7629.   ──────────────────────────────────────────────────────────────────────
  7630.   remarks:     Converts a virtual screen Y-coordinate to a row in a
  7631.                window. If 'window' is not specified, the current window
  7632.                is assumed. If 'virtualY' is not specified, the current
  7633.                mouse pointer position is assumed.
  7634.  
  7635.   returns:     the window row.
  7636.   see also:    virtocol
  7637.  
  7638.   example:     say (virtorow)
  7639.                  // displays the row in the current window where
  7640.                  //   the mouse pointer is located
  7641.  
  7642.  
  7643.   window?      window
  7644.   ──────────────────────────────────────────────────────────────────────
  7645.   remarks:     Tests if a window exists. If 'window' is not specified,
  7646.                the current window is assumed.
  7647.   returns:     TRUE if the window exists, otherwise null.
  7648.   see also:    frame?, wintype?
  7649.  
  7650.  
  7651.   winlist                                                       [Lib][a]
  7652.   ──────────────────────────────────────────────────────────────────────
  7653.   remarks:     Displays a list of open windows. If a window is selected,
  7654.                it becomes the current window.
  7655.   returns:     nothing
  7656.   see also:    currwin
  7657.  
  7658.  
  7659.   wintype?     object window
  7660.   ──────────────────────────────────────────────────────────────────────
  7661.   remarks:     Tests if the specified object is located in the
  7662.                inheritance path of the window event object. If 'window'
  7663.                is not specified, the current window is assumed.
  7664.  
  7665.   returns:     TRUE if 'object' is located in the inheritance path of
  7666.                the window event object, otherwise null.
  7667.  
  7668.   see also:    objtype?
  7669.  
  7670.   example:     wintype? "edit_fmgr"
  7671.                  // tests if the object 'edit_fmgr' is located in the
  7672.                  //   inheritance path of the window (tests if the
  7673.                  //   window is a fmgr window or an edit window)
  7674.  
  7675.  
  7676.   write        string                                 [Ext][edit,prompt]
  7677.   ──────────────────────────────────────────────────────────────────────
  7678.   remarks:     Enters a string into the current buffer at the cursor
  7679.                position, and moves the cursor to the end of the string.
  7680.                If the cursor is in insert mode, the string is inserted
  7681.                into the text, otherwise the string is overlaid onto the
  7682.                text.
  7683.  
  7684.                This function is similar to the 'writetext' function.
  7685.                However, the 'write' function provides support for the
  7686.                following window settings:
  7687.  
  7688.                - Live Word Wrap
  7689.                - MatchCharacter
  7690.                - Standard Word Wrap
  7691.                - Translate
  7692.  
  7693.   returns:     nothing
  7694.   see also:    instext, ovltext, writetext
  7695.  
  7696.   example:     write "some text"
  7697.  
  7698.  
  7699.   writebak     string screencol screenrow color
  7700.   ──────────────────────────────────────────────────────────────────────
  7701.   remarks:     Displays the specified string on the screen background.
  7702.                The string is displayed at physical screen coordinates
  7703.                'screencol' and 'screenrow' using the color attribute
  7704.                'color'. The coordinates are relative to the upper left
  7705.                corner of the screen.
  7706.  
  7707.                If 'screencol' or 'screenrow' are not specified, then the
  7708.                string is displayed immediately to the right of the last
  7709.                string written. If 'color' is not specified, the color of
  7710.                the last string is used.
  7711.  
  7712.   returns:     nothing
  7713.   see also:    hilite, writeline, writestr
  7714.  
  7715.  
  7716.   writefile    handle string opt=[k]
  7717.   ──────────────────────────────────────────────────────────────────────
  7718.   remarks:     Writes the specified string at the current position in the
  7719.                open file specified by 'handle'. The current position in
  7720.                the file is advanced by the number of characters written.
  7721.                If option 'k' is specified, the file date and time are
  7722.                not modified.
  7723.   returns:     The number of characters written if successful, otherwise
  7724.                null.
  7725.   see also:    closefile, filepos, openfile, readfile
  7726.  
  7727.  
  7728.   writeline    string color col row
  7729.   ──────────────────────────────────────────────────────────────────────
  7730.   remarks:     Displays the specified string in the current window using
  7731.                the color attribute 'color'. If 'col' and 'row' are not
  7732.                specified, the current cursor position is assumed. If
  7733.                'color' is not specified, the window 'text' color is
  7734.                assumed (see 'setcolor').
  7735.  
  7736.                The current cursor position is moved to column one of the
  7737.                next row. If the cursor was on the last row in the
  7738.                window, the window contents are scrolled up by one line.
  7739.  
  7740.                If the current window contains a buffer, the effects of
  7741.                this function (except for cursor movement) are temporary
  7742.                and will disappear the next time the display is updated.
  7743.  
  7744.   returns:     nothing
  7745.  
  7746.   see also:    clearwindow, getx, gety, gotoxy, hilite, writebak,
  7747.                writestr
  7748.  
  7749.   example:     writeline "some text"
  7750.                  // writes the string 'some text' at the cursor and
  7751.                  //   moves the cursor to the next line
  7752.                writeline "some text" 95
  7753.                  // writes the string 'some text' at the cursor with the
  7754.                  //   color white on magenta, and moves the cursor to
  7755.                  //   the next line
  7756.  
  7757.  
  7758.   writestr     string color col row
  7759.   ──────────────────────────────────────────────────────────────────────
  7760.   remarks:     Displays the specified string in the current window using
  7761.                the color attribute 'color'. If 'col' and 'row' are not
  7762.                specified, the current cursor position is assumed. If
  7763.                'color' is not specified, the window 'text' color is
  7764.                assumed (see 'setcolor').
  7765.  
  7766.                The current cursor position is moved one column past the
  7767.                end of the string.
  7768.  
  7769.                If the current window contains a buffer, the effects of
  7770.                this function (except for cursor movement) are temporary
  7771.                and will disappear the next time the display is updated.
  7772.  
  7773.   returns:     nothing
  7774.  
  7775.   see also:    clearwindow, getx, gety, gotoxy, hilite, writebak,
  7776.                writeline
  7777.  
  7778.   example:     writestr "some text"
  7779.                  // writes the string 'some text' at the cursor
  7780.                writestr "some text" 95
  7781.                  // writes the string 'some text' at the cursor with the
  7782.                  //   color white on magenta
  7783.  
  7784.  
  7785.   writetext    string col row buffer
  7786.   ──────────────────────────────────────────────────────────────────────
  7787.   remarks:     Enters a string into a buffer at the specified row and
  7788.                column, and moves the cursor to the end of the string. If
  7789.                the cursor is in insert mode, then the text is inserted,
  7790.                otherwise the text is overlaid.
  7791.  
  7792.                If 'buffer' is null or not specified, then the current
  7793.                buffer is assumed. If 'col' and 'row' are not specified,
  7794.                then the string is inserted at the current cursor
  7795.                position.
  7796.  
  7797.   returns:     TRUE if successful, otherwise null.
  7798.   see also:    delchar, ovltext
  7799.  
  7800.   example:     writetext "some text"
  7801.                  // writes 'some text' at the cursor in the current
  7802.                  //   buffer
  7803.                writetext "some text" 2 20
  7804.                  // writes 'some text' at column 2, line 20 in the
  7805.                  //   current buffer
  7806.                writetext "some text" 1 1 "abc"
  7807.                  // writes 'some text' at column 1, line 1 in the
  7808.                  //   buffer "abc"
  7809.  
  7810.  
  7811.   yncbox       message  title                                   [Lib][a]
  7812.   ──────────────────────────────────────────────────────────────────────
  7813.   remarks:     Displays the specified message in a popup window with
  7814.                'Yes', 'No', and 'Cancel' buttons. If a title is not
  7815.                specified, 'Message' is assumed.
  7816.  
  7817.   returns:     The name of the button pressed (Yes, No, or Cancel), or
  7818.                null if no button was pressed.
  7819.  
  7820.   see also:    msgbox, okbox, say, shortbox
  7821.  
  7822.   example:     yncbox "Replace the string?" "Replace"
  7823.  
  7824.